多线程问题,如何关闭其他调用同一方法的其他线程?
说法可能有些问题,例如方法 A();A()地执行时间为1分钟.
点下Button调用一次A(),再1分钟内点个十次八次的,就会出现在同一个时间同时有很多个线程在调用A()。我想只在最近的线程里执行A(),而取消其他线程的操作该如何做?
在单线程里做,不停的点Button 一直死在那里,过一会儿才可以继续,
下面的代码是单线程里做
Thread myThread;
private void button1_Click(object sender, EventArgs e)
{
if (myThread != null)
{
if ((myThread.ThreadState & (ThreadState.Stopped | ThreadState.Unstarted)) == 0)
{
myThread.Abort();
this.listBox1.Items.Add( "Cancel one threassssssssssssssssssssssssssssssssssssssssssssssssssssss ");
}
}
myThread = new Thread(new ThreadStart(DoSomething));
myThread.Start();
}
private delegate void ItemAddHandle(int i);
private void DoSomething()
{
listBox1.BeginInvoke(new ItemAddHandle(ShowStartInfo), new object[] { 1 });
for (int i = 0; i < 10000; i++)
{
listBox1.BeginInvoke(new ItemAddHandle(DoItemAdd), new object[] { i});
}
&nbs