请教个多线程的问题,逻辑稍微有点乱

nicholaskj 2010-10-06 02:55:38
本意是,主线程开启一个子线程,但不阻塞主线程,两个线程同时工作,不用同步

但是,一些代码,在一个线程,即主线程内用没问题,在子线程下用会出错,问题知道,直接导致主程序退出。

所以问问,有没有拌饭,让子线程完成之后,在回到主线程,但是不要join把主线程给阻断了。

谢谢回复
...全文
112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wy811007 2010-10-07
  • 打赏
  • 举报
回复
来学习下。
nicholaskj 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yzm888 的回复:]

想想为何子线程下用会出错
[/Quote]

问题是主程序不是我开发的,我只是做二次开发。
所以子线程出错我也没办法
wulala789 2010-10-06
  • 打赏
  • 举报
回复
貌似答非所问。。
wulala789 2010-10-06
  • 打赏
  • 举报
回复
异步委托,

#region 线程

private delegate void GetFunctionDelegate(string 参数); //声明委托

private bool GetFunction(string 参数) //假设返回bool值
{
//这里做忙碌的动作
}

public void RunGetFunction(string 参数)//这个被调用
{
GetFunctionDelegate d = GetFunction;
d.BeginInvoke(参数, new AsyncCallback(EndGetFunction), d);
}

private void EndGetFunction(IAsyncResult ar) //回调
{
if (InvokeRequired)
BeginInvoke(new AsyncCallback(EndGetFunction), ar); //重复
else
{
GetFunctionDelegate d = (GetFunctionDelegate)ar.AsyncState;
//d.EndInvoke(ar) 这个就是返回值

}
}
#endregion
验证码识别 2010-10-06
  • 打赏
  • 举报
回复
想想为何子线程下用会出错
bloodish 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 nicholaskj 的回复:]
让子线程完成之后,在回到主线程,但是不要join把主线程给阻断了。
[/Quote]

子线程完成之后,在回到主线程?
不明白你的意思,最好能把问题描述的更清楚一些
zhoujk 2010-10-06
  • 打赏
  • 举报
回复
主线程内用没问题,在子线程下用会出错
最简单的方法是把这个错误改了
nicholaskj 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]

的确逻辑混乱。在线程最后调用一个方法通知主线程。
[/Quote]

可是刚才有人说,线程调用的委托和方法都是线程的,属于线程执行

方法中代码该怎么写呢?
兔子-顾问 2010-10-06
  • 打赏
  • 举报
回复
的确逻辑混乱。在线程最后调用一个方法通知主线程。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧