昨晚上整理电脑时,发现很多空文件夹,删了几个便不耐烦了,太多空文件夹,于是想写一个删除空文件夹的小工具(详细请参照我的另一篇文章)。里面涉及到几个多线程访问Winform控件的知识,简单来记录一下。
多线程访问控件在网上的方法有很多,这里只记录我用到的这个,其他的可以去网上搜索,很多。
首先声明一个全局变量和一个委托类型(用来访问控件)
private BackgroundWorker _bWorker;
delegate void SetProgressBarDelegate(int value);
在一个按钮事件里面给这个workfer赋值一些属性
_bWorker = new BackgroundWorker();
_bWorker.DoWork += new DoWorkEventHandler(bWorker_DoWork);
_bWorker.WorkerReportsProgress = true;
_bWorker.WorkerSupportsCancellation = true;
_bWorker.RunWorkerAsync();
_bWorker.ProgressChanged += delegate(object s, ProgressChangedEventArgs ex)
{
if (proBarState.InvokeRequired)
{
SetProgressBarDelega