BackgroundWorkerTestForWinForm/FormMain.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;
using BackgroundWorkerExtensionLib;
using WinControlExtensionLib;

namespace BackgroundWorkerTestForWinForm
{
    public partial class FormMain : Form
    {

        private readonly BackgroundWorker bw;

        public FormMain()
        {
            InitializeComponent();
            bw = BackgroundWorkerExtension.InitNewBackgroundWorker(bw_DoWork, bw_ProgressChanged, bw_RunWorkerCompleted);
        }

        void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var ce = e.Argument as CustomerDoWorkEventArgs;
            BackgroundWorker cBw = ce.ExecBackgroundWorker;
            btnCancel.SetControlEnable(this, true);
            int count;
            if (!int.TryParse(ce.ExecParameter.ToString(),out count))
            {
                count = 10;
            }
            for (int i = 0; i < count; i++)
            {
                if (!cBw.CancellationPending)
                {
                    cBw.ReportProgress(i, "正在处理第" + i + "条数据");
                    Thread.Sleep(500);
                }
                else
                {
                    e.Cancel = true;
                    return;
                }
            }
        }

        void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            var userState = e.UserState;
            lblMessage.Text = "正在处理" + e.ProgressPercentage;
            lsRes.Items.Add(userState);
        }

        void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {

            btnCancel.Enabled = false;

            if (e.Cancelled)
            {
                MessageBox.Show("取消成功");
后面还有 28 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。