国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C# > 正文

C#中事件與線程的應用

2023-05-17 11:42:00
字體:
來源:轉載
供稿:網友

我們知道,如果按鈕事件中需要啟動線程,但線程所調用的方法默認是不帶參數,不帶返回值的,如果需要調用的方法我就TNND想帶參數,帶返回值,怎么做?我寫了例子。

界面:

要實現個簡單功能,輸入數字1,數字2,當按sum按鈕時,做一個從數字1到數字2的累加,然后彈出消息框顯示最后結果。

分析:考慮到軟件實用,做累加運算應該單獨開出一個線程來做,這個程序比較簡單,但如果運算量很大,點擊按鈕時程序便會處于“假死”狀態,動不了,(跟360查惡意軟件似的),繼續分析,如果單獨開辟線程來做,那線程所調用的方法必須有兩個參數(long num1,long num2),而且需要將結果返回給主窗體以便彈出窗口顯示結果,帶參數比較好解決了,新建一個類,將兩個參數做為類成員,并且在構造函數中接收這兩個變量,但返回值要如何獲得呢?大多數人會舉一反三,參數既然可以如此,那返回值不也是一個道理么?設置第三個類成員儲存結果,運算完畢后將值賦給這個變量即可,我們這樣寫這個類:

using System;
using System.Collections.Generic;
using System.Text;


class Num
{
        private long num1=0;
        private long num2=0;
        private long totalSum=0;
        public Num(long _num1, long _num2)
        {
            num1 = _num1;
            num2 = _num2;
        }
        public void sum()
        {
            for (long i = num1; i <= num2; i++)
            {
                totalSum += i;              
                 

        }

}
主窗體的代碼我們這么寫:

public partial class Form1 : Form

{
        public Form1()
        {
            InitializeComponent();
        }

        private void btnSum_Click(object sender, EventArgs e)
        {
            long num1 = long.Parse(txtNum1.Text);
            long num2 = long.Parse(txtNum2.Text);
            Num num = new Num(num1, num2);
            Thread thread = new Thread(new ThreadStart(num.sum));
            thread.Start();

            MessageBox.Show(num.totalSum.ToString());
        }

}

     當我們真這么做時,發現這個結果一輩子都是0,原因相信大家猜到了,當線程啟動時,代碼是會繼續運行的,所以當我們取值的時候,線程根本尚未開始運算,我們取的是變量的默認值0,怎么解決這個問題,這就用到了事件,Num類代碼改進如下:

using System;
using System.Collections.Generic;
using System.Text;

   

public delegate void delegateMe(long total);
    class Num
    {
        private long num1;
        private long num2;
        private long totalSum=0;
        public event delegateMe eventMe;
        public Num(long _num1, long _num2)
        {
            num1 = _num1;
            num2 = _num2;
        }
        public void sum()
        {
            for (long i = num1; i <= num2; i++)
            {
                totalSum += i;              
            }
            eventMe(totalSum);//觸發事件
        }
}

     這樣我們可以在for循環結束后,觸發事件,并且將結果返回,相應主窗口代碼改進如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;


public partial class Form1 : Form
{
        public Form1()
        {
            InitializeComponent();
        }

        private void btnSum_Click(object sender, EventArgs e)
        {
            long num1 = long.Parse(txtNum1.Text);
            long num2 = long.Parse(txtNum2.Text);
            Num num = new Num(num1, num2);
            num.eventMe += new delegateMe(num_eventMe);
            Thread thread = new Thread(new ThreadStart(num.sum));
            thread.Start();
        }

        void num_eventMe(long total)
        {
            MessageBox.Show(total.ToString());
        }
}

     這樣一來問題就解決了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产亚洲精品自在线观看| 欧美艹逼视频| 免费a级人成a大片在线观看| 青青草中文字幕| 国内a∨免费播放| 国产在线你懂得| 97一区二区三区| av高清资源| 久久五月精品| 国产一级视频| 国产精品视频一区二区久久 | 国产尤物视频| 午夜不卡视频| 精品美女调教视频| 欧美性猛交xxxx免费看蜜桃| 中文字幕在线免费视频| 国产精品合集一区二区 | 国产三级视频在线| 精品国产高清a毛片无毒不卡 | 国产麻豆视频网站| 国产精品va在线观看视色| 国产精品粉嫩av| 亚洲成人电视网| 1区不卡电影| 国产va在线观看| 九色成人在线| 国产爆初菊在线观看免费视频网站| 在线免费观看黄色av| 丁香婷婷在线| 在线一二三区| 伊人222成人综合网| 四虎a级欧美在线观看| 最新av中文字幕| 日本不卡1区2区3区| 天堂在线免费视频| 青青草免费观看免费视频在线| 国产天堂在线观看| 午夜视频在线免费| 亚洲字幕成人中文在线观看| 男人天堂v视频| 精品伦理一区二区| 国产区成人精品视频| 久久亚洲国产成人亚| 羞羞视频在线免费看| 国产不卡精品一区二区三区| 国产视频2区| 国产福利在线播放| 精品99又大又爽又硬少妇毛片| 国产人成在线视频| 国产成人精品综合网站| 国产三级香港三韩国三级| 中文字幕有码在线视频| 国产一区电影| 国产高清av| 中文字幕在线永久在线视频| 中文字幕视频免费在线观看| 国产日本韩国在线播放| 2019年中文字幕| 四虎一区二区三区| 久久精品无码一区二区日韩av| 男人天堂v视频| 国产午夜三区视频在线| 国产a级网站| 日本高清中文字幕| 1区2区3区在线| 国产精品18久久久久网站| 国产精品69一区二区三区| 中文资源在线网| 亚洲а∨精品天堂在线| 日本欧美在线视频免费观看| 美女av在线播放| 最新中文字幕在线| 国产日本视频| 欧美高清视频| 91麻豆免费在线视频| jizz在线视频| 国产视频一二区| 日本电影全部在线观看网站视频| 国产麻豆综合视频在线观看| 国产不卡一卡2卡三卡4卡5卡在线| 亚洲男人的天堂成人| 国产一级二级在线| 日本三级在线视频| 国产色婷婷在线| 天堂√中文在线| 国产视频中文字幕在线观看| 青青草在线免费观看| 2018狠狠干| 国产一级免费黄色片| www黄在线观看| 91av久久| 国产原创av在线| 亚洲激情丁香| 99热免费在线观看| ·天天天天操| 精品麻豆视频| 中文av资源在线| 97高清视频| 国产在线视频网站| 精品国产一区二区三区久久久狼牙| av在线网页| 四虎精品成人a在线观看| 69精品视频| 国产小视频在线观看| 久久精品最新免费国产成人| 日本欧洲一区| av男人的天堂网| 一级二级三级在线观看| 国产91久久久久蜜臀青青天草二| 国产精品久久久久久精| 国产精品国产三级国产试看| 中文字幕日本三级| 成人欧美亚洲| 国产高清视频免费最新在线| 非洲黑人最猛性xxxx交| 任你操在线观看| 国产在线视频福利| 久久国产情侣| 国产中文字幕av| 最近中文字幕在线中文视频 | 中文字幕中文字幕在线中高清免费版| h网站久久久| 福利视频网站导航| 国产青青草在线| 国产偷窥洗澡视频| 天堂资源中文在线| av在线免费播放网站| 亚洲成人在线播放| 欧美色第一页| 精品一二三四| 在线国产网址| 国内自拍视频在线看免费观看| 久久久久久久美女| 欧美精品久久久久久久小说| 天堂在线免费av| 伊人狠狠av| 国产三级自拍| 国产乱在线观看视频| 中文乱码字幕高清在线观看| 日本在线观看| 最新中文字幕av专区| 99久热re在线精彩视频| 久久国产综合视频| 国产一区电影| www.狠狠艹| 在线国产91| 精品视频vs精品视频| 天堂在线中文资源| 久久久久久久久亚洲精品| 国产a级网站| 最新亚洲精品国自产在线观看| 国产精品久久在线| 午夜不卡视频| 超碰在线国产| 四虎成人精品在永久在线观看| 久热中文字幕在线观看| 国产私人影院| 黄色片视频在线观看| 久热中文字幕精品视频在线| 在线观看av中文| 在线视频观看国产| 97福利电影| 最新中文字幕在线| 国产精品第八页| 丁香花在线电影| 国产精品18久久久久网站| 毛片在线视频| 国产网红在线| 丁香视频五月| 1区不卡电影| 国产小视频在线播放| 国产美女在线播放| 久热av在线| www.操.com| 精品国产一区二区三区四区阿崩| 国产精品美女一区二区三区四区| 国产三级自拍| 国产黄色在线看| 在线观看av网站永久| 开心激情五月婷婷| 国产三级自拍| 国产黄在线播放| 精品久久亚洲一级α| 蜜桃av网站| 最新亚洲精品国自产在线观看| 尤物在线网址| 国产福利在线视频| 伊人色综合网| 天天爱天天做色综合| 国产视频一二三区| 四虎国产精品永久| 最近中文字幕在线中文视频| 精精国产xxxx视频在线动漫| 国产丝袜自拍| wwww在线观看| 国产福利微拍精品一区二区| www.超级碰| 国产精品久久久久久久久鸭| 先锋影音av中文字幕| 国产免费高清|