后台线程如何调用主线程的函数呢

问题描述

主窗口主线程//自已写了一个RichTextBox的函数。这样操作就方便多了。后台线程想调用,把后台的信息直接更新到主窗口上。publicvoidAppNotice(stringmsg,Colorcolor,intI,boolbold){lock(Notice){//Notice.SelectionColor=Color.FromArgb(133,183,12);这是RGB设置this.NoticerichTextBox.AppendText(msg);intStartI=(Notice.Text.Length-msg.Length);intEndI=Notice.Text.Length;this.NoticerichTextBox.Select(StartI,EndI);this.NoticerichTextBox.SelectionColor=color;if(bold){NoticerichTextBox.SelectionFont=newFont("Tahoma",I,FontStyle.Bold);}else{NoticerichTextBox.SelectionFont=newFont("Tahoma",I,FontStyle.Regular);}this.NoticerichTextBox.Select(EndI,EndI);}}privatevoidbutton13_Click(objectsender,EventArgse){if(button13.Text=="导出"){GetLogsGetLogs=newGetLogs();ExportLogs=newThread(newThreadStart(GetLogs.GetLogVoid));ExportLogs.IsBackground=true;ExportLogs.Name="ExportLogs";ExportLogs.Start();button13.Text="取消";}else{ExportLogs.Abort();button13.Text="导出";}}另下一个文件,另一个一个线程。如何做呢。。不懂。。。看了好多委托,但还是不会求思络跟代码。namespaceWindowsFormsApplication1{}

解决方案

解决方案二:
用Form.invoke
解决方案三:
不明喔。。可以说下思络吗?谢谢哈。。

时间: 2024-10-21 23:00:17

后台线程如何调用主线程的函数呢的相关文章

Handler详解系列(三)——在子线程中给主线程的消息队列发送消息

MainActivity如下: package cc.c; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.w

Android任意时刻从子线程切换到主线程的实现

引入 在Android开发中常常会遇到网络请求,数据库数据准备等一些耗时的操作:而这些操作是不允许在主线程中进行的.因为这样会堵塞主线程导致程序出现未响应情况. 所以只能另起一个子线程进行这些耗时的操作,完成后再显示到界面.众所周知,界面等控件操作只能在主线程中完成:所以不可避免的需要从子线程切换到主线程. 方法 对于这样的情况在Android 中比较常见的是使用AsynTask类或者 Handler来进行线程切换:而其中AsynTask是官方封装的类,较为简单,效率也比较可以,但是并不适合所有

C# 主线程的函数结束后 其他线程才响应 为什么呢???求高人指点

问题描述 publicpartialclassForm1:Form{privatedelegatevoidThreadWork(inti);Threadthread;publicForm1(){InitializeComponent();}privatevoidbutton1_Click_1(objectsender,EventArgse){this.richTextBox1.Text="程序开始:rn";UpdateText();mll();}publicvoidUpdateText

窗口程序主线程循环调用子线程,不结束循环就无法操作窗体

问题描述 一开始循环后,窗体就卡住了,基本无法操作,也无法暂停循环,只有等到循环完毕才正常 解决方案 解决方案二:增加条件啊循环到什么程度停止循环,break出线程.解决方案三:引用1楼qq25620192的回复: 增加条件啊循环到什么程度停止循环,break出线程. 有退出循环的条件,我是想在循环的时候,还能操作窗体或者点击中断按钮,现在只要一开始循环就无法点击按钮了解决方案四:贴出代码来,而且不知道为什么要循环去掉子线程?在主线程里直接开一个子线程不行吗?解决方案五:引用3楼studyare

Android中主线程与子线程之间相互通信教程

有时候,我们也可能碰到这样子的一种需求:需要主线程来向子线程发送消息,希望子线程来完成什么任务.如果这样子应该怎么做呢?这就是这篇文章将要讨论的内容. 一.HandlerThread类 主线程发送消息给子线程,通常思维逻辑就是:其实很简单,在主线程中实例化一个Handler,然后让他与子线程相关联(只要它与子线程的Looper相关联即可),这样子它处理的消息就是该子线程中的消息队列,而处理的逻辑都是在该子线程中执行的,不会占用主线程的时间.那么我们就来实现一下,看看这样子到底行得通还是行不通.新

java编程中主线程子线程交替问题分析

问题:子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次. 分析:这个实际上是很简单的问题,即子线程run,主线程阻塞--->子线程阻塞,主线程run,能够使线程阻塞的方法有很多,最常见的是sleep与wait:当然,需要控制的话,用wait/notify.子线程与主线程共同操作一个Resource 对象,而Resource对象中由两个方法分别实现子线程与主线程的操作对象 代码如下: package treadga

android 当在主线程里开启一个新线程 程序就崩溃

问题描述 android 当在主线程里开启一个新线程 程序就崩溃 我要实现的功能是检索SDcard里的所有txt文件我尝试过很多办法 1 不用线程 直接在主线程里检索文件 由于有循环且检索时间会超过5秒 导致黑屏然后提示未响应2 我建立一个线程让线程去检索文件当检索完毕后把检索到的文件传递给主类 主类再把检索到的文件显示在list上 但是当线程一启动程序就崩溃了3 最后我在主类里添加handler 当子线程检索完毕就sendmessage给主类 然后主类把子线程检索到的文件显示在list上但程序

UNIX环境高级编程:主线程与子线程的退出关系

我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1.  主线程等待新线程先结束退出,主线程后退出.正常执行. 示例代码: #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> pthread_t ntid;//线程ID void print

关于主线程子线程运行顺序的疑惑

问题描述 关于主线程子线程运行顺序的疑惑 这里是书上截得一段程序,我不明白!这是运行结果:为什么运行结果一开始是waiting for thread to finish也就是主线程先跑的.为什么一开始不是子线程先跑?求大神解答 解决方案 因为pthread_join的存在,join使得主线程和子线程同步,主线程阻塞住等待子线程运行完. 不同语言略有差异,但是基本上都是类似的,找一篇文章你看下http://blog.csdn.net/hmk2011/article/details/6289151