c# winform 多线程调用信息窗体

问题描述

c# winform 多线程调用信息窗体

想做一个多线程任务中的信息提示窗体。即在执行任务的过程中,如果一个线程需要向外界输出信息,那么就显示该信息窗体,并在窗体上显示信息内容,可以点击一个按钮关闭该窗体。如果其中一个线程调用了该窗体显示信息后没有关闭,其他线程调用该窗体时,则在原信息窗体上补充显示新的信息。
请各位大虾出手相助!

解决方案

可以使用自定义消息,多线程只向消息队列提交消息,信息窗体根据消息来处理显示问题

时间: 2024-12-21 20:30:44

c# winform 多线程调用信息窗体的相关文章

winform-Winform show()调用子窗体的问题

问题描述 Winform show()调用子窗体的问题 我使用contextMenuStrip控件建立菜单想要在点击菜单中的事件时会跳转到子窗体. MyForm1中代码如下: private: System::Void 文件的加密ToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { MyForm1 frm1 = new MyForm1(); frm1.Owner = this;frm1.show(); }

我使用C#winform 多线程自动定时弹出新窗体,但是窗体一直忙

问题描述 我使用C#winform多线程自动定时弹出新窗体,但是窗体一直忙.我比如定时5秒钟弹出一个新窗体,但是一直都是忙的状态,我无法对新窗体操作,即使改为1分钟弹一次也没有办法,怎么办? 解决方案 解决方案二:面对这样的提问方式,我只能回答:凉拌解决方案三:如果线程不是UI主线程的话,操作窗体需要用委托调用的,你可以用异步委托,到时间就弹出一个窗体解决方案四:代码如下Form1frm;privatevoidbutton1_Click(objectsender,EventArgse){vart

c# winform 多线程使用的问题 多线登录new新窗体的时候 报错

问题描述 c# winform 多线程使用的问题 多线登录new新窗体的时候 报错 c# winform 多线程使用的问题 多线登录new新窗体的时候 Thread Thr=new Thread(new ThreadStart(test1)) Thr.Start(); public void test1() { form1 for=new form1(); for.show(); } 报 线程间操作无效: 从不是创建控件"lts"的线程访问它.如何解决呢 解决方案 up 习惯用委托去解

多线程调用窗体控件的问题!!!

问题描述 WinForm的程序在窗体的start按钮中有以下代码{.......Threadt1=newThread(newThreadStart(ThreadEntry));t1.Start();}ThreadEntry方法如下privatevoidThreadEntry(){this.BeginInvoke(newmyDelegate(InvokeListView));}InvokeListView方法如下privatevoidInvokeListView(){一些对listview控件的操

winform 多线程如何刷新控件,在线等.....

问题描述 在一个form中有listbox控件,在form启动后,自动执行多线程,在线程中不时刷新listbox控件.在常见的例子中,多线程是一个form类中函数,所以在多线程中可以看见listbox,之后进行委托即可,但是我现在要执行的多线程是另一个类中的函数(添加了新类mythread),在这个类中listbox不可见,无法委托,要是formn=newform();xxx+=newmydelegate(n.setlistbox);,不是刷新原来的listbox控件,是新建一个form(n),

C# WinForm多线程开发(二) ThreadPool 与 Timer

原文地址:点击打开链接 [摘要]本文介绍C# WinForm多线程开发之ThreadPool 与 Timer,并提供详细的示例代码供参考. 本文接上文,继续探讨WinForm中的多线程问题,再次主要探讨threadpool 和timer. 一 .ThreadPool 线程池(ThreadPool)是一种相对较简单的方法,它适应于一些需要多个线程而又较短任务(如一些常处于阻塞状态的线程),它的缺点是对创建的线程不能加以控制,也不能设置其优先级.由于每个进程只有一个线程池,当然每个应用程序域也只有一

C# WinForm多线程开发(三) Control.Invoke

原文地址:点击打开链接 [摘要]本文介绍C# WinForm多线程开发之Control.Invoke,并提供详细的示例代码供参考. 下面我们就把在Windows Form软件中使用Invoke时的多线程要注意的问题给大家做一个介绍. 首先,什么样的操作需要考虑使用多线程?总的一条就是,负责与用户交互的线程(以下简称为UI线程)应该保持顺畅,当UI线程调用的API可能引起阻塞时间超过30毫秒时(比如访问CD-ROM等速度超慢的外设.进行远程调用等等)就应该考虑使用多线程.为什么是30毫秒?30毫秒

c# 4 0-关于C#多线程调用的问题

问题描述 关于C#多线程调用的问题 我的窗体是MDI多文档窗体,我在主窗体顶部天界了菜单,点击菜单弹出子窗体,但是因为我要用到数据库,所以我想在点击窗体这块使用线程,但是提示错误说线程间操作无效: 从不是创建控件"MainWindow"的线程访问它.,我看到论坛中说用到委托,可是我还不会,请教大神. private void OpenTrainScheduleInquiryWindow() //线程用到的函数 { if (trainScheduleInquiry == null ||

C# WinForm多线程开发(一) Thread类库

原文地址:点击打开链接 [摘要]本文介绍C# WinForm多线程开发之Thread类库,并提供简单的示例代码供参考. Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程.什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源.而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针.程序计数器等),但代码区是共享的,即不