【发布时间】:2017-07-23 12:07:16
【问题描述】:
我的应用程序上有一个按钮,其点击事件:
private void btn_Click(object sender, EventArgs e)
{
btn_DoMyAction();
}
而btn_DoMyAction 是
private void btn_DoMyAction()
{
//lock (_lock) //--> Is this necessary
{
...
... //long code block(I mean non automic)
...
}
}
我正在从点击事件和 Windows 计时器滴答声中调用 btn_DoMyAction
private void myTimer_Tick(object sender, EventArgs e)
{
btn_DoMyAction();
}
我有两个问题:
1-) btnProcessNextBandBarcode_DoMyAction 中是否需要 lock (我问的是第一个问题,因为就我调试而言,它似乎排队调用,并且似乎不需要锁定)
2-) 我想跳过线程而不是在滴答声或按钮单击时排队
另外的问题是:
- 如果第一个问题的答案是否定的,如果从线程调用
btn_DoMyAction(无计时器),我应该如何采取措施来实现自动性
【问题讨论】:
标签: c# multithreading winforms timer