//开启刷新线程 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# 线程的使用
猜你喜欢
转载自zheyiw.iteye.com/blog/2149184
今日推荐
周排行