如何在另一段代码完成之前暂停代码?

时间:2013-08-24 23:32:54

标签: c# winforms visual-studio-2010 events

所以假设我有两个类,一个是winform,另一个是资源中的class.cs。因此,当加载表单时,我运行代码(resources.scripts.db_connect.getinfo();),该代码转到db_connect类并运行方法getinfo。然后,在数据库有机会被读取之前,winform将继续运行代码。这意味着没有更新txtbox。

我可以想到两个解决方案,

  • 修改数据库连接方法中的文本框。 (这个 在跨类添加控件时会出现问题orr ..

  • 暂停winform上的代码,直到数据库连接为止 关闭并且有一个触发器触发winform继续 编码

如果还有其他解决方案,请告诉我们!如果没有,我怎么去做,到目前为止我的所有努力都是徒劳的:(

(只是为了澄清,“我想要的”是申请start > windows form to load > connect to database and read > write those to text boxes / labels

private void client_Load(object sender, EventArgs e)
    {
        Resources.Scripts.db_connections.getchar1();
        // stop here until event is re-fired...
        textboxexample.Text = Resources.String.info.examplestring;
    }


class db_connections
{
    public static void getchar1()
    {
        try
        {
            // My database connection is run in here...

        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

        finally
        {
           // re fire event on previous class  
        }
    }
}

1 个答案:

答案 0 :(得分:-3)

您可以使用Thread Concept ...使用Thread Directory并为每个进程创建单独的线程,然后按照以下步骤进行操作

1)运行第一个过程的线程

2)使用Suspend()函数暂停线程

3)运行第二个进程的线程

4)然后当你想继续暂停的过程时,只需使用Resume()函数