用户操作
[即时聊天] [发私信] [加为好友]
guoleiID:guolei0451
77381次访问,排名1292好友1人,关注者2
guolei0451的文章
原创 27 篇
翻译 0 篇
转载 85 篇
评论 25 篇
最近评论
hias_asia:ECHO C:\TB\TB.EXE /R+ > C:\tb11.bat
ECHO C:\TC\BIN\tc.exe /R+ > C:\tc30.bat
ECHO C:\TP\BIN\TPX.EXE /R+ > C:\tp70.bat
ECHO 彻底卸载MSN Messager
RunDll32.exe advpack.dll,Laun……
hias_asia:Doskey CD...=CD..$tCD..
Doskey CD....=CD..$tCD..$tCD..
Doskey rarbg="C:\Program Files\WinRAR\WinRAR.exe" a -cu -ep1 -ibck $1
Doskey rarsm="C:\Program Files\WinRAR\WinRAR.exe" a -cl -……
hias_asia:ve.scr"
DEL "%systemroot%\system32\ss3dfo.scr"
DEL "%systemroot%\system32\ssbezier.scr"
DEL "%systemroot%\system32\ssflwbox.scr"
DEL "%systemroot%\system32\ssmarque.scr"
DE……
hias_asia:del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*……
hias_asia:给楼主看看我的批处理文件版本
CLS
@echo off
ECHO.
ECHO 删除墙纸...
DEL "%systemroot%\Blue Lace 16.bmp"
DEL "%systemroot%\Coffee Bean.bmp"
DEL "%systemroot%\FeatherTexture.bmp"
……
文章分类
收藏
相册
C#
ChengKing(ZhengJian)有游戏代码
CODEPROJECT
FAQ/ASPNET
FAQ/WindowsForms
haibodotnet水晶报表
Pierce BLOG 中的NetWork 有关于socket的知识
愚翁专栏
李建忠
邹建专栏
阿良.NET
SharePoint
SharePoint
电子图书
公益电子书
好友BLOG
康健
都都
软件资源
QIQI资源
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

转载 如何在子线程中操作窗体上的控件收藏

新一篇: 如何弹出一个模式窗口来显示进度条  | 旧一篇: Stream的问题

  转自:愚翁
一般来说,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。
 
现在用一个用线程控制的进程条来说明,大致的步骤如下:
1. 创建Invoke函数,大致如下:
        ///<summary>
        /// Delegate function to be invoked by main thread
        ///</summary>
        private void InvokeFun()
        {
            if( prgBar.Value < 100 )
                prgBar.Value = prgBar.Value + 1;
        }
 
2. 子线程入口函数:
        ///<summary>
        /// Thread function interface
        ///</summary>
        private void ThreadFun()
        {
            //Create invoke method by specific function
            MethodInvoker mi = new MethodInvoker( this.InvokeFun );
 
            for( int i = 0; i < 100; i++ )
            {
                this.BeginInvoke( mi );
                Thread.Sleep( 100 );
            }
        }
 
3. 创建子线程:
            Thread thdProcess = new Thread( new ThreadStart( ThreadFun ) );
            thdProcess.Start();
 
       备注:
              using System.Threading;
              private System.Windows.Forms.ProgressBar prgBar
 

发表于 @ 2006年09月18日 16:40:00|评论(loading...)|编辑

新一篇: 如何弹出一个模式窗口来显示进度条  | 旧一篇: Stream的问题

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © guolei