Groups | Blog | Home
all groups > dotnet sdk > march 2004 >

dotnet sdk : multithreading in COM+ using C#


kazi
3/24/2004 8:18:53 PM
Hi
I'm programming a application use the COM+, MSMQ, SQL server. I want to
use one thread reading the data from the SQL server, and then put then to a
System.Collections.Queue, use another thread get the data from the Queue and
then Send them to the MSMQ.
Now i meet a problem that the COM+ run in the STA model only allow one
method running in one time.How can i change the COM+ to MTA model in C#
language?
I have already read the COM+ SDK documents in the MSDN, but i don't know
how to the change the attribute in the C#.
Threading Model Attribute (COM+ (Component Services)) :
http://search.microsoft.com/search/info.aspx?u=http%3A%2F%2Fmsdn.microsoft.c
om%2Flibrary%2Fen-us%2Fcossdk%2Fhtm%2Fpgcontexts_0pk5.asp&n=0&na=&c=0&View=m
sdn&st=a&qu=com%2b+Threading&c=0&s=1
COM Threading and Application Architecture in COM+ Applications (COM+
Technical Articles) :
http://msdn.microsoft.com/library/en-us/dncomser/html/comthread.asp

The following is the simple code of my program.

//COM+

public class ComPlus : System.EnterpriseServices.ServicedComponent
{
private System.Collections.Queue Q;
public ComPlus() {}
public void MethodOne() { /* Read data from SQL server, Put them to the
Q */}
public void MethodTwo() { /* Read data from Q, Send them to the MSMQ */}
}

//Console Application (or Windows Services)
public class MainApp
{
public static void Main()
{
ComPlus com = new ComPlus();
System.Threading.Thread threadOne = new Thread(new
ThreadStart(com.MethodOne));
System.Threading.Thread threadTwo = new Thread(new
ThreadStart(com.MethodTwo));

threadOne.Start(); //MethodOne can run in normally.
threadTwo.Start(); //But the MethodTwo can't run when the others
running.
//I want to improve the performance of the
application,
//So I want them to run in one time;
threadOne.Join();
threadTwo.Join();
}
}


Thanks in advance...






AlexS
5/15/2004 5:28:01 PM
Hi, kazi

Check ApartmentState of Thread class.

HTH
Alex

[quoted text, click to view]

AddThis Social Bookmark Button