0

我有一个我写的应用程序。该应用程序还有一个基本上是 HTTP 服务器的类。我在表单的 Load 函数中的一个单独线程中启动这个 Http 服务器。

    private void Form1_Load(object sender, EventArgs e)
    {
        HttpServer httpServer;
        httpServer = new MyHttpServer(8080);            
        Thread thread = new Thread(new ThreadStart(httpServer.listen));
        thread.Start();
    }

我现在遇到的问题是,我希望能够从请求进入的 HttpServer 类的函数中触发表单上某些按钮上的 Click 事件。我无法做到这一点,因为我没有参考在 HttpServer 类中运行 Form1 的对象。

请帮我解决这个问题。

4

4 回答 4

1

如果您决定在HttpServer类中创建事件并订阅它们,请不要忘记事件处理程序的代码将在另一个线程中执行,因此请检查InvokeRequired并使用Invoke/BeginInvoke表单方法。

于 2012-11-26T14:13:03.180 回答
0

在您的 httpServer 上使用事件并让表单订阅它们

于 2012-11-26T12:55:19.090 回答
0

将 Form1_Load 方法中的代码分解为 Service 类。从两个地方调用这个公共服务类。

于 2012-11-26T11:38:43.730 回答
0

如果您没有对表格的引用,您可以制作一个。如果您不能这样做,出于各种原因,可以将您在 Form 的方法中执行的操作提取到单独的类中,该类将由 Form 和系统的其他组件引用。

于 2012-11-26T11:38:56.303 回答