【发布时间】:2012-02-07 22:11:58
【问题描述】:
我有下面的代码(但不起作用)..我需要等到线程完成它的工作然后执行下一个命令
private void btnPaste_Click(object sender, EventArgs e)
{
if (copiedItems != null)
{
if (copy)
{
System.Threading.Thread thPASTE = new System.Threading.Thread(PasteFromCopy);
thPASTE.Start(currAddress);
lock (this)
{
btnRefresh_Click(sender, e);
}
}
else
{
System.Threading.Thread thPASTE = new System.Threading.Thread(PasteFromMove);
thPASTE.Start(currAddress);
lock (this)
{
btnRefresh_Click(sender, e);
}
}
}
}
粘贴应该做一些代码,然后我应该刷新我显示的列表..我需要这样做,因为当我在线程中调用刷新时它对我不起作用
我该怎么做??
【问题讨论】:
-
您可能还想考虑一个私有锁定变量,而不是锁定
this。例如,private readonly object lockObject = new object();您可以查看此线程以了解更多详细信息stackoverflow.com/questions/251391/why-is-lockthis-bad -
启动一个线程然后等待它是没有意义的。你也可以直接调用 PasteFromCopy()
标签: c# multithreading synchronization wait