C# 在程序运行时显示信息消息

C# 在程序运行时显示信息消息,c#,C#,我正在用C#开发一个用户界面。当用户单击“开始”按钮时,一个巨大的“for循环”开始工作。这个过程需要几分钟 我希望在forloop之前显示一条消息,在forloop之后消息将自动消失。我的目标是向用户发送一条信息消息,如“正在运行,请稍候” 有什么办法吗 这是循环。它扫描图像并进行一些处理 for (var i = 0; i <3504 ; i++) for (var j = 0; j < 2306; j++) { ........

我正在用C#开发一个用户界面。当用户单击“开始”按钮时,一个巨大的“for循环”开始工作。这个过程需要几分钟

我希望在forloop之前显示一条消息,在forloop之后消息将自动消失。我的目标是向用户发送一条信息消息,如“正在运行,请稍候”

有什么办法吗

这是循环。它扫描图像并进行一些处理

for (var i = 0; i <3504 ; i++)
    for (var j = 0; j < 2306; j++)
        {
         ........
        }

for(var i=0;i您没有说明您使用的是什么GUI框架,所以我将采用表单。不过WPF将类似

假设当您单击名为“button1”的按钮时,工作开始。创建一个
表单
子类作为您的消息(例如,称为“MessageWaitForm”)。然后您可以这样使用它:

private void SomeWork()
{
    for (var i = 0; i <3504 ; i++)
        for (var j = 0; j < 2306; j++)
            {
             ........
            }
}

private void button1_Click(object sender, EventArgs e)
{
    using (MessageWaitForm form = new MessageWaitForm())
    {
        form.Shown += async (sender1, e1) =>
        {
            await Task.Run(() => SomeWork());
            form.Close();
        }

        form.ShowDialog();
    }
}
private void SomeWork()
{
对于(var i=0;i
{
等待任务。运行(()=>SomeWork());
form.Close();
}
form.ShowDialog();
}
}
这将导致处理在单独的异步任务中执行,在显示消息对话框后开始。任务完成后,执行将返回到
form.Close()
语句,从而允许自动关闭消息表单


请注意,我必须做出一些假设,并填写一些代码示例,以便提供一个可用的答案。上述内容可能与您目前的具体实现不匹配,但希望您能够理解所演示的基本概念,并使其符合您的需要。

也许您的代码看起来像这样?我还没有机会编译这个,但它应该足以让您开始

private void StartBtn_OnClick(object sender, EventArgs e)
{
    _isRunning = true;
    CodeIsRunning.Visibility = Visibility.Visible;
    //Anything else needed (disable buttons, etc)
    Task.Factory.StartNew(() => {
        for (var i = 0; i < 3504; i++)
            for (var j = 0; j < 2306; j++)
            { 
                ... 
            }
        _isRunning = false;
    });
}
private void StartBtn_OnClick(对象发送方,事件参数e)
{
_isRunning=true;
CodeIsRunning.Visibility=可见性.Visibility;
//还需要什么(禁用按钮等)
Task.Factory.StartNew(()=>{
对于(变量i=0;i<3504;i++)
对于(var j=0;j<2306;j++)
{ 
... 
}
_isRunning=false;
});
}

使用a。希望循环是线程化的?
异步任务
IProgress
可能是
BackgroundWorker
的替代方案。