线程A启动线程B,B中定义的delegate函数指向A中某函数A_Delegate(),A终止B线程时:A_StopB() {
m_B.m_eventBeKilled.Set();//让线程B退出循环。其中m_B定义:private Class_B m_B; m_threadOfObjectB.Join(); //等B退出。
//其中m_threadOfObjectB的定义:private Thread m_threadMtThread;
//m_threadOfObjectB= new Thread(new ThreadStart(m_B.Begin));
}B在退出时调用了回调函数,指向A的A_Delegate(),此时A的A_StopB中Join()与A_Delegate()死锁。大家给看看。
m_B.m_eventBeKilled.Set();//让线程B退出循环。其中m_B定义:private Class_B m_B; m_threadOfObjectB.Join(); //等B退出。
//其中m_threadOfObjectB的定义:private Thread m_threadMtThread;
//m_threadOfObjectB= new Thread(new ThreadStart(m_B.Begin));
}B在退出时调用了回调函数,指向A的A_Delegate(),此时A的A_StopB中Join()与A_Delegate()死锁。大家给看看。
解决方案 »
- 有关C#Event
- 怎样获取DataGridView中某行某列控件?
- 进程状态的问题
- C++/CLI 套接字
- 如何过滤数据库表中的Html标记?
- 求C#.NET 中常用控件精典使用方法及实例下载~~
- 大侠进来看看啊!!
- 2种不同的代码(tcp/ip client),哪个效率相对来说好一些.
- winform dev的一个girdveiw中含有detailview,且带有checkbox(字表的),每次展开后第一行都默认勾选,如何去掉?
- 请问dev控件的chartcontrol怎么让x轴不从原点开始?
- ★★如何区分同一个对象的不同实例?★
- C#。net调试的时候常用的那个窗口是什么来着?被我关掉了,从哪里打开?
例如:
private Mutex mWork = new Mutex();//In sub-thread b
mWork.WaitOne();
//do some work heremWork.ReleaseMutex();//In sub-thread a
myWork.WaitOne();//Wait for sub-thread b finished
//Call other function
jiangsheng(蒋晟.Net[MVP]) ,您的方法找时间偶仔细看看.先谢啦.
to:
Knight94(愚翁) ,"你这样的做法就是不合理的",我的主线程a是一个form,我是想在主线程的托管函数里输出一些信息到一个listview,线程b在调用委托函数时传递一个字符串,托管函数输出到界面,那怎么输出子线程信息到界面比较合理?