小编Joh*_*ohn的帖子

关闭Form(线程+调用)时出现异常

我刚刚开始学习c#中的线程和方法,但我遇到了一个我无法找到解决方案的问题.

我制作了一个基本的C#表单程序,通过启动一个线程并调用委托来不断更新和显示一个数字.

在Form1_load上启动新线程:

private void Form1_Load(object sender, EventArgs e)
  {
        t = new System.Threading.Thread(DoThisAllTheTime);
        t.Start();
  }
Run Code Online (Sandbox Code Playgroud)

Public void DoThisAllTheTime(不断更新数字):

public void DoThisAllTheTime()
  {
     while(true)
      {
        if (!this.IsDisposed)
         {
           number += 1;
           MethodInvoker yolo = delegate() { label1.Text = number.ToString(); };
           this.Invoke(yolo);
         }
      }
  }
Run Code Online (Sandbox Code Playgroud)

现在当我单击表单的X按钮时,我得到以下异常:

'System.Windows.Forms.dll中发生了'System.ObjectDisposedException'类型的未处理异常

无法更新已删除的对象'

虽然我确实检查了表格是否被处理.

编辑:我添加了catch(ObjectDisposedException ex)到修复问题的代码.工作代码:

  public void DoThisAllTheTime()
  {
     while(true)
      {
         number += 1;

         try {  
              MethodInvoker yolo = delegate() { label1.Text = number.ToString(); };
              this.Invoke(yolo);
             }
         catch (ObjectDisposedException ex)
             {
              t.Abort();
             }
      }
 }
Run Code Online (Sandbox Code Playgroud)

c# multithreading exception

5
推荐指数
1
解决办法
7450
查看次数

如何以编程方式创建和构建.exe?

有没有办法从C#创建和构建.exe?(编者注:基本上是一个可以创建和编译其他.NET应用程序的.NET应用程序 - 请参阅接受的答案)

我不是在谈论获取我的项目的.exe(这是我在谷歌上可以找到的唯一的exe版本),我在谈论从我的程序中生成.exe文件.

我如何从C#创建一个可运行的.exe文件?我不知道如何和谷歌我只找到关于在哪里找到项目的.exe的问题,而我希望项目建立.exe的本身.

c# exe builder

2
推荐指数
1
解决办法
2227
查看次数

如何让 webBrowser_Documentcompleted 多次触发

我用 c# 做了一个简单的 webbrowser,它不断重新加载页面,然后在页面加载时做一些事情。

但是,在第一次之后,以下函数不再触发:

public void gotourl()
{
   webBrowser.Navigate("Stackoverflow.com");
}

 public void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
   MessageBox.Show("Page loaded succesfully."); // only fires once
   // waiting for a few seconds by using a timer
   gotourl();
}
Run Code Online (Sandbox Code Playgroud)

但是,我确实重新加载了页面。documentcompleted 状态不会再次触发。

有没有办法让函数在我每次导航到一个 url 时触发?

(我也试过 webBrowser.Refresh() )

编辑:我添加了令人难以置信的解决方案..

c#

2
推荐指数
1
解决办法
671
查看次数

标签 统计

c# ×3

builder ×1

exception ×1

exe ×1

multithreading ×1