//开启刷新线程
private void BeginRefresh()
{
//开启一个线程
isThread1Runing = true;
Thread thread = new Thread(new ThreadStart(ThreadRefreshRankingType));
thread.Start();
}
//1,后台线程主代码
private void ThreadRefreshRankingType()
{
string uuid = thread1UUid;
while (isThread1Runing)
{
Thread.Sleep(refreshTime);
if (!isThread1Runing)
{
return;
}
if (uuid != thread1UUid) return;
//如果是在窗体的构造函数里面就开启线程,这里必须判断窗口句柄是否创建
//否则会回调失败,出现: "在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke" 的错误
if (IsHandleCreated)
{
BeginInvoke(new Del_RefreshRankingType(RefreshRankingType));
indexRankingType++;
}
}
}
//2,代理
public delegate void Del_RefreshRankingType();
//3,代理的实现
public void RefreshRankingType()
{
//这里是回调方法,在UI线程中执行的动作
//......
}
C# 线程的使用
最新推荐文章于 2024-01-01 10:28:21 发布