随笔 - 252, 文章 - 13, 评论 - 176, 阅读 - 58万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
//读取程序图标,来作为托盘图标
this
.notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Windows.Forms.Application.ExecutablePath);

 

 

线程池

ThreadPool.QueueUserWorkItem(callBack =>
                {
                    XiaoAoHelper.logout();
                });

 

 

解决办法:

1.

直接在窗体的构造函数中加:System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;此时把所有的控件合法性线程检查全部都给禁止掉了。

 

 

 

复制代码
            Thread t2 = new Thread(() =>
            {
                for (int i = 1; i <= 10; i++)
                {
                    this.BeginInvoke(new Action(() =>
                    {
                        progressBar1.Value = i * 10;
                    }));
                    Thread.Sleep(1000);
                }
            });
            t2.IsBackground = true;
            t2.Start();
复制代码

 

复制代码
        private void CheckUpdateVersionAnsyn()
        {
            try
            {
                Uri endpoint = new Uri(string.Format("{0}v.aspx?timer={1}", App.Url, DateTime.Now.ToString()));
                WebClient client = new WebClient();
                var are = new AutoResetEvent(false);

                client.DownloadStringCompleted += (s, e) =>
                {
                    are.Set();

                    if (e.Error == null)
                    {
                        int ver = 0;
                        ver = ExecVaspx(e.Result);
                        base.Dispatcher.BeginInvoke(() =>
                        {
                            if (Application.Current.IsRunningOutOfBrowser)
                            {
                                OOBUpApp(ver);
                            }
                            else
                            {

                                reLogin();

                            }
                        });
                    }
                    else
                    {
                        base.Dispatcher.BeginInvoke(() =>
                        {
                            reLogin();
                            App.ShowMessage("网络连接失败,未获取到新版本!", AletrEnum.Error);
                        });
                    }
                };

                client.DownloadStringAsync(endpoint);

                if (!are.WaitOne(5000))
                {
                    base.Dispatcher.BeginInvoke(() =>
                    {
                        reLogin();
                        App.ShowMessage("网络连接失败,未获取到新版本!", AletrEnum.Error);
                    });
                    client.CancelAsync();
                }
            }
            catch 
            {
                base.Dispatcher.BeginInvoke(() =>
                {
                    reLogin();
                    App.ShowMessage("发生系统性错误,无法更新!", AletrEnum.Error);
                });
            }
        }
复制代码

 

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示