我有AB两个输入框 ,C这个按钮事件(他有true和false两个状态)
我AB两个文本框分别写了回车事件(这两个文本框的值分别会向一个全局变量插入),
然后我写了一个线程去判断全局变量里面的count是否为2,然后我希望在按钮Cfalse 的时候启动线程,true 的时候关闭,这个我该怎么做。有大佬会吗
我AB两个文本框分别写了回车事件(这两个文本框的值分别会向一个全局变量插入),
然后我写了一个线程去判断全局变量里面的count是否为2,然后我希望在按钮Cfalse 的时候启动线程,true 的时候关闭,这个我该怎么做。有大佬会吗
private bool buttonResult = false;
private volatile bool isExit = false;
private List<string> strList = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
buttonResult = !buttonResult;
if (!buttonResult)
{
isExit = false;
ThreadPool.QueueUserWorkItem(state => MyThread());
}
else
{
isExit = true;
}
} private void MyThread()
{
while (!isExit)
{
if (strList.Count == 2)
{ }
Thread.Sleep(1000);
}
}
使用task方法:
private bool buttonResult = false;
private List<string> strList = new List<string>();
private CancellationTokenSource src = new CancellationTokenSource();
private void button1_Click(object sender, EventArgs e)
{
buttonResult = !buttonResult;
if (buttonResult)
{
src = new CancellationTokenSource();
Task.Factory.StartNew(MyThread, src.Token);
}
else
{
src.Cancel();
}
} private void MyThread()
{
while(!src.IsCancellationRequested)
{
if (strList.Count == 2)
{ }
Thread.Sleep(1000);
}
}