.NET学习手记之:WPF--线程

//声明一个线程:

public Thread thdAddFile;

//开启新线程:

thdAddFile = new Thread(new ThreadStart(RunAddFile));
                    thdAddFile.Start();

//创建一个要让新线程运行的方法:

//此程序是一个复制文件并体现在进度条的进度示例:

public void RunAddFile()
        {

           //判断进度条控件是否被主线程调用。

            if (this.progressBar1.Dispatcher.CheckAccess())
            {
                CopyFile(tb_SourceFileName.Text, newdir, 1024, progressBar1);
                thdAddFile.Abort();
            }

            else
            {
                this.progressBar1.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate
                {

                    CopyFile(tb_SourceFileName.Text, newdir, 1024, progressBar1);
                    thdAddFile.Abort();
                });
            }
        }

Dispatcher.Inovoke提供豐富的多型可以使用,透過指定的DispatcherPriority、delegate action與指定的參數值。

呼叫Invoke方法之後,它會將指定在UI Thread上執行的delegate action排入Dispatcher佇列中。使用該方法可確保UI Thread會進行封鎖,直到在 UI Thread上執行該工作為止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值