`
isiqi
  • 浏览: 16483030 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C#多线程UI界面处理

阅读更多

在多线程编程中,除控件事件以外,在自己定义的方法中对控件的属性重新设置都会出现异常,具体处理方法如下:

方法一、先声明一个委托,后定义一个方法,如下:

private delegate void SetlbChatters(string str);

private void lbChattersAddItem(string str)
{
if (this.lbChatters.InvokeRequired)
{
SetlbChatters d = new SetlbChatters(lbChattersClearItem);
this.Invoke(d, new object[] { str});
}
else
{
lbChatters.Items.Add(str);
}
}

接着就可以在其他方法中调用lbChattersAddItem(str)函数了

方法二、先定义如下时间:

private void AddText(object o, EventArgs e)
{
string data = (string)o;
textBox1.Text += "\r\n";
textBox1.Text += "data: " + data;
}

接着在要修改控件属性的地方调用 BeginInvoke(new EventHandler(AddText), new object[] { data, new EventArgs() });即可。


有关Invoke和BeginInvoke请参考:

http://blog.csdn.net/jingrenhai/archive/2007/11/27/1904439.aspx

http://tech.ddvip.com/2006-08/11544225606606.html

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tomatohxy/archive/2008/12/16/3529338.aspx

分享到:
评论

相关推荐

    C# 线程更新UI界面

    本篇文章将深入探讨如何通过委托在子线程中更新UI界面。 1. **多线程基础知识** - 线程:线程是程序中的执行流,每个进程至少有一个线程。 - 主线程:应用程序启动时创建的第一个线程,负责处理UI交互和事件。 -...

    WinForm C# 多线程编程并更新界面(UI)

    WinForm C# 多线程编程并更新界面(UI) 在 Windows 窗体应用程序中,多线程编程是非常重要的,这样可以提高应用程序的响应速度和用户体验。下面我们来讨论如何在 WinForm 中使用 C# 实现多线程编程并更新界面(UI...

    C#多线程刷新界面

    总之,C#多线程刷新界面的技术核心在于理解线程之间的交互和UI更新的同步机制,以及如何有效地利用.NET提供的工具来避免UI冻结,提升用户体验。通过学习和实践这些技术,开发者能够编写出更加高效、响应迅速的应用...

    C#多线程解决界面卡死问题的完美解决方案_极简版

    总结来说,C#中多线程解决界面卡死问题的方法主要包括使用BackgroundWorker和async/await模式。这两种方法都旨在将耗时操作与UI更新分离,确保用户界面始终响应。理解并熟练运用这些技术,能够显著提升C#应用的用户...

    c#多线程中子线程动态改变ui控件

    C#多线程中子线程动态改变UI控件 在桌面应用程序中,控制UI界面是一个非常重要的任务。特别是在C#多线程编程中,子线程更新UI控件是一个常见的问题。本文将总结C#子线程更新UI控件的方法,介绍两种常用的方法,以便...

    C#-WinForm跨线程修改UI界面的实例

    本实例“C#-WinForm跨线程修改UI界面的实例”主要展示了如何利用`Task`和`MethodInvoker`来实现跨线程安全地更新UI。`Task`是.NET Framework中的一个类,用于表示异步操作,而`MethodInvoker`是一个委托类型,可以...

    C#多线程消息处理例子

    在“C#多线程消息处理例子”中,UI界面的设计至关重要。Windows Forms或WPF通常用于构建这样的界面,它们提供了丰富的控件和API来创建和更新UI。界面设计需要考虑到线程安全,如使用Control.BeginInvoke或Dispatcher...

    1027 C# 自定义UI界面 控件库 源码_c#控件_C#UI界面库_UI控件库_C#控件_c#控件库_

    7. **多线程与异步编程**:在UI界面中,为了保持界面响应性,可能需要将耗时操作放在后台线程执行。C#提供了Task、async/await关键字支持异步编程,避免阻塞主线程。 8. **资源管理**:图像、字体、声音等资源是UI...

    C#多线程解决界面卡死问题的完美解决方案

    在C#编程中,多线程技术是一种关键的性能优化手段,尤其对于处理耗时操作时,能够确保用户界面(UI)的响应性,避免出现界面卡死的现象。本解决方案将深入探讨如何利用C#的多线程特性来解决这个问题。 一、线程基础...

    C#多线程与UI响应

    C#多线程与UI响应是应用程序设计中的一种重要技术,需要注意避免在UI线程中执行耗时的任务,使用委托调用Form的方法来实现界面更新,并选择合适的多线程编程方式,以提高应用程序的响应速度和用户体验。

    C#WinForm,多线程快速刷新界面。

    本文将深入探讨如何在C# WinForm中利用多线程实现界面快速刷新。 首先,我们需要理解Windows Forms(WinForm)应用程序的基础架构。默认情况下,WinForm应用程序有一个主线程,负责处理所有UI事件,如用户交互和...

    C#WinForm跨线程更新UI的四种方法

    在C#编程中,开发Windows桌面应用程序时,我们经常遇到多线程操作,尤其是在WinForms应用中。当后台线程需要更新用户界面(UI)时,由于.NET Framework的安全机制,直接操作UI控件会引发“Cross-thread operation ...

    c#Winform异步线程刷新UI

    在C# WinForm应用开发中,我们经常遇到需要在后台执行耗时操作,同时保持用户界面(UI)的响应性。这就是异步编程的核心应用场景。VS2013支持.net框架4.0,该版本引入了Task类和异步编程模型,使得处理这种需求变得...

    C#用了多线程界面卡死

    ### C#中多线程与界面卡顿问题详解 #### 一、问题概述 在C#应用程序开发中,特别是Windows Forms应用中,界面卡顿是一个常见的问题。这往往发生在使用了多线程的情况下,尽管多线程技术可以有效提高程序性能,但...

    C#多线程编程源码奉上

    在这个“C#多线程编程源码”中,我们可以深入学习如何在Visual Studio 2008环境下利用C#进行多线程操作,包括UI线程和异步调用的实现。 1. **多线程基础** - **线程创建**:C#中可以使用`System.Threading.Thread`...

    C# WinForm多线程防止界面假死源码

    本资源提供了"C# WinForm多线程防止界面假死"的源码示例,帮助初学者理解和实践如何在WinForm应用中正确使用多线程。 首先,理解WinForm中的主线程与工作线程的区别至关重要。主线程是负责更新和绘制UI的线程,而...

    C#多线程进度条实例

    总之,"C#多线程进度条实例"是一个关于如何在C#中利用多线程进行耗时操作,并实时更新UI进度条的实践示例。它涉及到线程的创建、UI的同步更新以及可能的暂停、恢复和取消功能。通过理解和应用这些知识点,开发者可以...

    c#多线程处理文档

    这篇未完成的项目似乎是在探讨如何在C#环境中有效地利用多线程来处理文档,这可能是为了实现并发读写、批量操作或者优化大型数据处理等场景。 多线程在C#中的实现主要依赖于`System.Threading`命名空间。在该命名...

    利用多线程来提高UI界面中的用户体验

    为了改善这种状况,开发者常常会采用多线程技术,将耗时任务移到后台线程执行,从而保持UI界面的实时性和互动性。本主题将深入探讨如何利用多线程来提高UI界面中的用户体验,并提供源码和UML文档供参考。 一、多...

Global site tag (gtag.js) - Google Analytics