//开启刷新线程
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#线程的使用,包括创建线程、线程同步、线程通信以及如何管理和控制线程。 1. **线程创建** 在C#中,可以通过两种主要方式创建线程:使用`Thread`类或使用`Task`类。`Thread`类是最原始的方法,...
在C#编程中,线程是并发执行任务的基础单元,"C#线程使用大炮打飞机"这个项目,很可能是为了教学目的设计的一个小游戏,旨在帮助初学者理解线程的概念和用法。在这个场景中,“大炮打飞机”游戏可能会有两个主要线程...
本实例将深入探讨如何在C#中使用线程,以及相关的知识点。 1. **线程创建** C#中创建线程有两种主要方式:通过`System.Threading.Thread`类实例化或者使用`System.Threading.Tasks.Task`类。传统方法是通过`Thread...
而《C#线程参考手册》这本书,尽管年代稍显久远,但似乎仍然是一个全面了解C#线程使用的不错选择。 为了帮助读者更好地理解C#线程编程,以下列举了一些关键知识点: 1. 线程创建与启动: - 使用System.Threading...
c#线程参考手册 c#线程参考手册 c#线程参考手册
C# 线程的使用 讲解了C#中使用线程的很多方法 C# 线程的使用 讲解了C#中使用线程的很多方法
在C#编程中,线程是执行代码的基本单元,它允许程序同时执行多个任务,从而提高了应用程序的响应性和效率。特别是在UI(用户界面)开发中,为了保证界面的流畅性,通常我们会将耗时操作放在后台线程进行,而更新UI则...
C#线程参考手册 多线程 高级编程处理
在C#中,我们可以使用`System.Threading`命名空间中的`Thread`类来创建和控制线程。创建一个新的线程通常通过实例化`Thread`类并传递一个委托(或lambda表达式)作为参数,这个委托定义了新线程要执行的任务。例如:...
本文将深入探讨“C#多线程消息处理例子”中的核心概念,包括消息处理、线程间通信、UI交互以及代理的使用。 首先,我们需要理解多线程的概念。在计算机科学中,多线程允许一个应用程序同时执行多个任务,提高了资源...
C#多线程中子线程动态改变UI控件 在桌面应用程序中,控制UI界面是一个非常重要的任务。特别是在C#多线程编程中,子线程更新UI控件是一个常见的问题。本文将总结C#子线程更新UI控件的方法,介绍两种常用的方法,以便...
C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 没分的朋友...
采用的是C#的Winform开发,提供了两种线程交互的方式。 第一:在主线程中开启两个子线程,子线程用事件方式来进行通信。对于主线程的控件操作采用的是delegate委托的方式,避免主线程假死。 第二:采用的是...
本文将深入探讨C#线程中的BeginInvoke和EndInvoke这两个关键方法的使用。 一、C#线程基础 线程是操作系统调度的基本单位,一个进程至少包含一个线程。在需要执行并发任务或者提升程序性能时,开发者会在同一进程中...
总结,C#线程是实现并发和异步编程的关键工具。理解并熟练运用线程管理、同步机制和异步编程模型,能够帮助开发者编写出高效、稳定的应用程序。通过不断实践和学习,你将能更好地驾驭C#的线程世界。
但是在使用穿行违背了使用多线程并发的初衷,这种情况下我们可以考虑采用线程安全结构。 先看下线程安全队列的用法: ConcurrentQueue<int> ts = new System.Collections.Concurrent.ConcurrentQueue
本篇将深入探讨C#线程相关的知识,并基于描述中的“C#线程参考手册”相关代码进行讨论。 1. **线程创建与启动** 在C#中,我们可以使用`Thread`类来创建新线程。创建一个新线程的基本步骤包括实例化`Thread`对象并...
总的来说,“C#线程间操作无效”异常是由于不正确的线程交互导致的,通过正确使用`Invoke`和`BeginInvoke`方法,以及遵循多线程编程的最佳实践,可以有效避免这个问题。在实际开发中,理解并掌握这些概念和技巧对于...
《C#线程参考手册》是一本专注于C#编程中多线程技术的权威指南,旨在帮助开发者深入理解和熟练运用线程技术。线程是现代应用程序中的重要概念,尤其是在并发和并行处理方面,它是多任务环境下的核心元素。本手册通过...