< 返回新闻公共列表
云南大王-C# Task Cancel,CancellationTokenSource.IsCancellationRequested
发布时间:2020-04-13 00:00:00
public partial class Form1 : Form
{
CancellationTokenSource cts = new CancellationTokenSource();
public Form1()
{
InitializeComponent();
}
private void StartClick(object sender, EventArgs e)
{
Task testTask = Task.Run(() =>
{
while (!cts.IsCancellationRequested)
{
string str = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
BeginInvoke(new Action(() =>
{
listBox1.Items.Add(str);
}));
Thread.Sleep(500);
}
}, cts.Token);
}
private void CancelClick(object sender, EventArgs e)
{
cts.Cancel();
string str = "Task cancelled";
listBox1.Items.Add(str);
}
}
public partial class Form1 : Form
{
CancellationTokenSource cts = new CancellationTokenSource();
List lbList = new List();
public Form1()
{
InitializeComponent();
listBox1.DataSource = lbList;
}
private void StartClick(object sender, EventArgs e)
{
Task testTask = Task.Run(() =>
{
while (!cts.IsCancellationRequested)
{
string str = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
BeginInvoke(new Action(() =>
{
lbList.Add(str);
listBox1.DataSource = null;
listBox1.DataSource = lbList;
}));
Thread.Sleep(500);
}
}, cts.Token);
}
private void CancelClick(object sender, EventArgs e)
{
cts.Cancel();
string str = "Task cancelled";
BeginInvoke(new Action(() =>
{
lbList.Add(str);
listBox1.DataSource = null;
listBox1.DataSource = lbList;
}));
}
}
public partial class Form1 : Form
{
CancellationTokenSource cts = new CancellationTokenSource();
List lbList = new List();
public Form1()
{
InitializeComponent();
listBox1.DataSource = lbList;
}
private void StartClick(object sender, EventArgs e)
{
Task testTask = Task.Run(() =>
{
while (!cts.IsCancellationRequested)
{
AddContentToLBx();
}
}, cts.Token);
}
int i = 0;
private void AddContentToLBx()
{
for(i=0;i<10000;i++)
{
string str = $"i={i},{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
BeginInvoke(new Action(() =>
{
lbList.Add(str);
listBox1.DataSource = null;
listBox1.DataSource = lbList;
}));
Thread.Sleep(500);
if (cts.IsCancellationRequested)
{
break;
}
}
}
private void CancelClick(object sender, EventArgs e)
{
cts.Cancel();
string str = $"i={i},Task cancelled";
BeginInvoke(new Action(() =>
{
lbList.Add(str);
listBox1.DataSource = null;
listBox1.DataSource = lbList;
}));
}
}
int i = 0;
List lbList = new List();
private bool IsCancelled { get; set; }
public Form1()
{
InitializeComponent();
listBox1.DataSource = lbList;
}
//Start or restart
private void StartClick(object sender, EventArgs e)
{
IsCancelled = false;
if(!IsCancelled)
{
Task testTask = Task.Run(() =>
{
AddContentToLBx();
});
}
}
private void AddContentToLBx()
{
while (i < 10000)
{
if (!IsCancelled)
{
string str = $"i={i},{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
BeginInvoke(new Action(() =>
{
lbList.Add(str);
listBox1.DataSource = null;
listBox1.DataSource = lbList;
}));
Thread.Sleep(500);
}
else
{
break;
}
i++;
}
}
private void CancelClick(object sender, EventArgs e)
{
IsCancelled = true;
string str = $"i={i},Task cancelled";
BeginInvoke(new Action(() =>
{
lbList.Add(str);
listBox1.DataSource = null;
listBox1.DataSource = lbList;
}));
}