一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - .NET 4.5 異步IO 相關(guān)實(shí)例

.NET 4.5 異步IO 相關(guān)實(shí)例

2019-11-03 19:24asp.net教程網(wǎng) ASP.NET教程

本篇文章小編為大家介紹,.NET 4.5 異步IO 相關(guān)實(shí)例,需要的朋友參考下

在C/S架構(gòu)中,不管是傳統(tǒng)的winform還是wpf都可能會(huì)遇到進(jìn)行異步操作文件的時(shí)候。文件小還好說(shuō),直接寫(xiě)操作代碼。

如果是大文件很多時(shí)候做成異步的操作。在界面上顯示一個(gè)進(jìn)度條什么的,后臺(tái)使用一個(gè)backgroundworker來(lái)做。在這里告訴大家在.NET Framework4.5中支持異步IO的操作。大大簡(jiǎn)化之前些的異步方法代碼。

使用backgroundworker代碼

復(fù)制代碼代碼如下:


View Code

 

private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            System.ComponentModel.BackgroundWorker bak = new System.ComponentModel.BackgroundWorker();
            bak.DoWork += bak_DoWork;
            bak.RunWorkerCompleted += bak_RunWorkerCompleted;
            bak.RunWorkerAsync();          
        }

        void bak_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            string sourceDir = @"E:\";
            string endDir = @"F:\";
            foreach (string filename in Directory.EnumerateFiles(sourceDir))
            {
                using (FileStream SourceStream = File.Open(filename, FileMode.Open))
                {
                    using (FileStream DestinationStream = File.Create(endDir + filename.Substring(filename.LastIndexOf('\\'))))
                    {
                        SourceStream.CopyTo(DestinationStream);
                    }
                }
            }
        }

        void bak_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
        {
            MessageBox.Show("ok");
        }


以上應(yīng)該是最基本的操作了,代碼是不是很多?看看.NET Framework 4.5的寫(xiě)法吧。

復(fù)制代碼代碼如下:

private async void Button_Click_2(object sender, RoutedEventArgs e)
        {
            string sourceDir = @"E:\";
            string endDir = @"F:\";
            foreach (string filename in Directory.EnumerateFiles(sourceDir))
            {
                using (FileStream SourceStream = File.Open(filename, FileMode.Open))
                {
                    using (FileStream DestinationStream = File.Create(endDir + filename.Substring(filename.LastIndexOf('\\'))))
                    {
                        await SourceStream.CopyToAsync(DestinationStream);
                    }
                }
            }
            MessageBox.Show("ok");
        }


希望能幫助到一些人。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本中文字幕在线视频 | 国产高清日韩 | 日本免费一区二区三区a区 日本免费三片在线观看 | 日韩毛片大全免费高清 | 91看片淫黄大片在看 | 国产一区在线看 | chinese男男gay| 色男人的天堂久久综合 | 美女全身无遮挡 | 五月色婷婷久久综合 | 天使萌痴汉在线中文字幕 | 农村美女沟厕嘘嘘被偷看 | 欧美最新在线 | 狠狠撸在线影院 | 色久天| 久久永久免费视频 | 超碰av| 小妇人电影免费完整观看2021 | 四虎永久在线精品波多野结衣 | 福利视频一区二区思瑞 | 成人网久久 | 亚洲第一综合网 | 国产精品久久久久影院色老大 | 日韩一级精品视频在线观看 | 大吊操| 9420高清完整版在线观看国语 | 女女同性做爰xxoo亲吻 | 精品免费tv久久久久久久 | 免费观看大片毛片 | 四虎在线永久免费视频网站 | 饭冈加奈子在线播放观看 | 高清视频在线播放ww | 日本xnxnxnxnxn护士 | 久久不卡免费视频 | 本站只有精品 | 国产亚洲精品第一综合linode | 羲义嫁密着中出交尾gvg794 | 青柠网在线观看视频 | 精品国产欧美一区二区三区成人 | 亚洲男人的天堂视频 | 美尻在线|