如何实现线程间的通讯
答案:4 悬赏:0
解决时间 2021-02-01 02:44
- 提问者网友:浪子生来ˇ性放荡²↘
- 2021-01-31 04:38
如何实现线程间的通讯
最佳答案
- 二级知识专家网友:说多了都是废话
- 2021-01-31 06:00
lock加公共对象就可以
全部回答
- 1楼网友:糜废丧逼
- 2021-01-31 09:02
可以用BackgroundWorker类,例:
假设在一个WinForm程序内,
private BackgroundWorker bgWorker;
public Form1()
{
InitializeComponent();
//初始化BackgroundWorker
this.InitializeBackgoundWorker();
List arr = new List();
arr.Add(4);
arr.Add(5);
//开始异步执行后台操作
this.bgWorker.RunWorkerAsync(arr);
}
///
/// 初始化BackgroundWorker
///
private void InitializeBackgoundWorker()
{
this.bgWorker = new BackgroundWorker();
this.bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
this.bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_RunWorkerCompleted);
}
///
/// 执行新线程,通过参数把主线程中的值传到新线程中使用。
///
///
///
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
List arr = e.Argument as List;
e.Result = this.Add(arr[0], arr[1]);
}
///
/// 当新线程执行完毕以后会触发这个事件。
///
///
///
private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//在主线程中返回另一个线程执行的结果并显示出来。
MessageBox.Show(e.Result.ToString());
}
///
/// 一个加法操作
///
///
///
///
private int Add(int a, int b)
{
return a + b;
}
把上面的代码复制过去慢慢研究你就会明白了,有注释。
- 2楼网友:兮沫♡晨曦
- 2021-01-31 07:49
1.全局变量
2.事件
- 3楼网友:不傲怎称霸
- 2021-01-31 07:23
在java中,在同步块中或者同步方法中,使用notify、wait方法可以实现线程的同步与互斥,也就是线程之间的通讯。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯