• 大小: 194KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C#
  • 标签: 多线程  

资源简介

多线程开发例子 开发工具: VS2017 版本:framework4.6.1

资源截图

代码片段和文件信息

using System;
using System.Windows.Forms;
using System.Threading;

namespace WinFormThread
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        public delegate void ShowwaitDelegate(bool visible);
        public delegate void Calc();
        public delegate void SetTxtControl(int i);

        private void button2_Click(object sender EventArgs e)
        {
            Thread thread = new Thread(PostCalc);
            thread.IsBackground = true;
            thread.Start();
        }
        
        private void PostCalc()
        {
            try
            {
                Showwait(true);
                ManualResetEvent[] _ManualEvents = new ManualResetEvent[2];
                _ManualEvents[0] = new ManualResetEvent(false);
                ThreadPool.QueueUserWorkItem(new WaitCallback(calc1) _ManualEvents[0]);
                _ManualEvents[1] = new ManualResetEvent(false);
                ThreadPool.QueueUserWorkItem(new WaitCallback(calc2) _ManualEvents[1]);
                WaitHandle.WaitAll(_ManualEvents);
                Showwait(false);
                MessageBox.Show(“执行完成“ “提示信息“ MessageBoxButtons.OK MessageBoxIcon.Information);
            }
            catch(Exception ex)
            {
                MessageBox.Show(“PostCalc异常“ + ex.ToString()“提示信息“ MessageBoxButtons.OK MessageBoxIcon.Error);
            }
        }
        public void Showwait(bool visible)
        {
            if (labTest.InvokeRequired)
            {
                ShowwaitDelegate showwaitDelegate = new ShowwaitDelegate(Showwait);
                this.Invoke(showwaitDelegate new object[] { visible });
            }
            else
            {
                labTest.Visible = visible;
                labTest.Refresh();
            }
        }
        public void calc1( object state)
        {
            int i = 0;
            while (i < 2000)
            {
                i++;
                setTextBox2(i);
                Thread.Sleep(1);
            }
            ManualResetEvent e = (ManualResetEvent)state;
            e.Set();
        }      
        public void calc2(object state)
        {
            int i = 0;
            while (i < 1000)
            {
                i++;
                setTextBox3(i);
                Thread.Sleep(1);
            }
            ManualResetEvent e = (ManualResetEvent)state;
            e.Set();
        }
        public void setTextBox2(int i)
        {
            try
            {
                if (textBox2.InvokeRequired)
                {
                    SetTxtControl setTxtControl = new SetTxtControl(setTextBox2);
                    this.BeginInvoke(setTxtControl new object[]{ i });
                }
                else
                {
                    textBox2.Text = i.ToString();
                    textBox2.R

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-16 15:04  WinFormThread\
     目录           0  2017-11-16 15:04  WinFormThread\.vs\
     目录           0  2017-11-16 15:04  WinFormThread\.vs\WinFormThread\
     目录           0  2017-11-16 15:05  WinFormThread\.vs\WinFormThread\v15\
     文件       47616  2017-11-23 19:10  WinFormThread\.vs\WinFormThread\v15\.suo
     目录           0  2017-11-16 15:05  WinFormThread\.vs\WinFormThread\v15\Server\
     目录           0  2017-11-23 19:10  WinFormThread\.vs\WinFormThread\v15\Server\sqlite3\
     文件           0  2017-11-16 15:05  WinFormThread\.vs\WinFormThread\v15\Server\sqlite3\db.lock
     文件      598016  2017-11-23 19:10  WinFormThread\.vs\WinFormThread\v15\Server\sqlite3\storage.ide
     目录           0  2017-11-23 19:10  WinFormThread\WinFormThread\
     文件        1138  2017-11-16 15:04  WinFormThread\WinFormThread.sln
     文件         189  2017-11-16 15:04  WinFormThread\WinFormThread\App.config
     目录           0  2017-11-23 19:04  WinFormThread\WinFormThread\bin\
     目录           0  2017-11-23 19:10  WinFormThread\WinFormThread\bin\Debug\
     文件       11264  2017-11-23 19:10  WinFormThread\WinFormThread\bin\Debug\WinFormThread.exe
     文件         189  2017-11-16 15:04  WinFormThread\WinFormThread\bin\Debug\WinFormThread.exe.config
     文件       22016  2017-11-23 19:10  WinFormThread\WinFormThread\bin\Debug\WinFormThread.pdb
     目录           0  2017-11-23 19:04  WinFormThread\WinFormThread\bin\Release\
     文件        3866  2017-11-23 19:10  WinFormThread\WinFormThread\frmMain.cs
     文件        3916  2017-11-23 19:05  WinFormThread\WinFormThread\frmMain.Designer.cs
     文件        5817  2017-11-23 19:05  WinFormThread\WinFormThread\frmMain.resx
     目录           0  2017-11-16 15:04  WinFormThread\WinFormThread\obj\
     目录           0  2017-11-23 19:10  WinFormThread\WinFormThread\obj\Debug\
     文件        1464  2017-11-17 08:31  WinFormThread\WinFormThread\obj\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        7196  2017-11-23 19:04  WinFormThread\WinFormThread\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件           0  2017-11-16 15:04  WinFormThread\WinFormThread\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
     文件           0  2017-11-16 15:04  WinFormThread\WinFormThread\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
     文件           0  2017-11-16 15:04  WinFormThread\WinFormThread\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
     目录           0  2017-11-16 15:04  WinFormThread\WinFormThread\obj\Debug\TempPE\
     文件          42  2017-11-23 19:10  WinFormThread\WinFormThread\obj\Debug\WinFormThread.csproj.CoreCompileInputs.cache
     文件         812  2017-11-23 19:10  WinFormThread\WinFormThread\obj\Debug\WinFormThread.csproj.FileListAbsolute.txt
............此处省略13个文件信息

评论

共有 条评论