多线程的问题,还没想明白怎么实现 单用户的模式下是这样的, 在主线程里创建一个第三方提供的对象(比如: OXMessage), 这个对象接收远程的消息, 通过设置的回调函数返回主线程.单用户下很容易实现.当目前需要实现多用户,单线程下有竞争,所以打算用多线程来实现,但一般的多线程都是开始一个线程,做完一件任务就退出了,如何让线程一直等待回调函数呢?请问有类似的例子吗?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你所说的OXMessage我不知道是什么东西。假设它是类似vb的com组件那种东西,它就是在(隐藏的)窗体线程的消息循环中被驱动,也就是说是窗体主线程驱动了事件发生,然后这个OXMessage继续执行在窗体主线程上,然后回调时还是在窗体主线程。这时候,它就不知道去使用.net意义上的子线程。我不知道你说的“打算用多线程来实现”是什么意思。但是如果你在.net多线程下去调用这类COM组件,其实也没有什么多线程的作用。 在说明白一点把。我看不懂你说的“通过设置的回调函数返回主线程”是什么什么意思。如果你说的就是上述那种单线程COM机制,那么这其实也不是什么主线程在“主线程在一直等待回调函数”,而是主线程(窗体消息本来就在主线程上执行,然后才触发了你说的OXMessage代码)去执行回调——而无需等待。多线程也是这样——无需等待。线程A上的程序调用了另一个线程上的程序B,等B回调时它该在哪个线程上就在哪个线程上执行代码,跟A无关。 单线程的代码:public class MyMessage{ OXMessage ox = new OXMessage(); public void init(string accID) { ox.setAccount(accID); // 不同的帐号 ox.start(callbackentry); // 设置回调函数 } public void callbackentry() { //具体的操作 }}如果同时创建多个 mymessage class来对应多个帐号, 其实还是单线程:主线程中:public MyMessage[] m_mymessage = new MyMessage[20]; for (int i=0;i<=20;i++){ mymessage[i].init(strAcc[i]);} 这样是单线程里跑多个帐号,如果我想用多线程来跑多个帐号,应该如何实现? Thread 类 webBrowser 中调用js函数 关于WebService代理类的问题 vs 2005 连接拖动 将字符串转换为 uniqueidentifier 时出现语法错误 请问.net2.0中的SmtpMail在哪个名字空间下? 创建并把dataset里的内容导入一个XML 文件。告诉我没有权限,怎么办?高手帮忙!!!谢拉 彻底晕了,跪求? 用代码实现还原数据库,该数据库处于脱机状态,请高手请教。 在C#中怎么打开选择目录的对话框? 关于在vs.net中创建组件的问题 ppc高手请进来,谁有PPC2003的cf2.0安装包 关于HtmlSelect传值问题,请求帮助
{
OXMessage ox = new OXMessage();
public void init(string accID)
{
ox.setAccount(accID); // 不同的帐号
ox.start(callbackentry); // 设置回调函数
} public void callbackentry()
{
//具体的操作
}}如果同时创建多个 mymessage class来对应多个帐号, 其实还是单线程:
主线程中:
public MyMessage[] m_mymessage = new MyMessage[20];
for (int i=0;i<=20;i++)
{
mymessage[i].init(strAcc[i]);
}
这样是单线程里跑多个帐号,如果我想用多线程来跑多个帐号,应该如何实现?