System.Threading.Thread.Sleep(x);
但这会让我的软件冻结。 怎么做这个方法工作冻结我的应用程序 我的完整代码
private void button18_Click_3(object sender, EventArgs e)
{
for (int i = 0; i < lstgroups.Items.Count; i++)
{
//
System.Threading.Thread.Sleep(x);
System.Windows.Forms.Application.EnableVisualStyles();
//
timeless.Enabled = true;
timeless.Start();
duration--;
if (duration == 0)
{
timeless.Start();
}
if (Gsend.Post(lstgroupsbox.Items[i].ToString(), AppSettings.Default.AccessToken, txtStatus.Text, txtLink.Text) == true)
lblshow.Text = "Sent To : " + lstgroups.Items[i].Text;
lblsendid.Text = "Sent To : " + lstgroupsbox.Items[i];
{
//foreach (var item in lstgroups.Items)
//{
// if (Gsend.Post(item.ToString(), "", txtStatus.Text, "", 2, "", txtImagePath.Text) == true)
// MessageBox.Show("Post Has Been Sent");
//}
}
答案 0 :(得分:1)
避免使用Thread.sleep(),因为它会使主线程保持给定时间,并且GUI将冻结。
其他选项
答案 1 :(得分:0)
在不是主线程的线程上完成工作。通过在事件中使用sleep,您实际上停止了对主线程的任何处理。
答案 2 :(得分:0)
也许你可以使用后台工作者