`
zheyiw
  • 浏览: 997451 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C# 线程的使用

    博客分类:
  • C#
c# 
阅读更多
//开启刷新线程
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线程中执行的动作
	//......
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics