多线程里如何写入同1个文档数据?
public delegate void MyInvoke(string str);
private void btnStartThread_Click(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(DoWord));
thread.Start();
}
public void DoWord()
{
MyInvoke mi = new MyInvoke(SetTxt);
BeginInvoke(mi,new object[]{"abc"});
}
public void SetTxt(string str)
{
//把str写入1.txt 文档里
}
这样可以么???? 这个不会导致什么错误吧,如果我要更新Listview呢??
------解决思路----------------------
主线程只有一个,用于界面交互,如果你让主线程去做这个任务,那么界面就会卡住,通常我们会设计多线程去避免主线程卡住,而 不会反而把任务交给主线程去处理。
如果你要防止并发写文件,也就是需要排队,只有这个线程写完,其它线程才可以写。这就是线程同步,c#里有很多种方法实现线程同步,这个你自己学习学习。