如何实现这提示功能呢?

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:59:47
我想在程序中设计一自动下载功能。在下载文件时,程序弹出一窗口,提示用户正在下载。而下载工作则在另一线程里执行。当下载工作执行完毕后,提示窗口关闭,并弹出对话框告知用户已下载完毕。现在问题就是,如何才能在下载开始时弹出提示,而下载结束后自动关闭提示呢?我试过在线程里创建WINDOW,结果被告知必须在主线程才能创建一窗口。而我也试过主线程创建窗口后,在下载工作的线程里关闭此窗口,但是又抛出异常,说那个提示窗口“在另一线程里使用,无法访问”(自然关闭操作要失败,并意外终止程序)。要是直接在主线程里把关闭窗口语句写在后面,那未等下载完提示窗口先关掉了,因为下载工作是在另一线程里的,主线程会继续执行后面代码。那么,我说的这功能该如何实现?如何才能实现这里的提示功能?

下载工作线程里写一个event,下载完成后触发这个event,在主窗口用一个hander关闭下载提示窗口

下载线程类里:
public event EventHandler myHandler;

下载完成后:
myHandler(this, new EventArgs());

主窗口:
开始下载线程前:
下载线程对象.myHandler += new EventHandler(DownloadFinished);

private void DownloadFinished(object sender, EventArgs e)
{
EventHandler closeWindow = new EventHandler(CloseWindow);
Invoke(closeWindow);
}

private void CloseWindow(object sender, EventArgs e)
{
在这里写关闭窗口弹出提示等代码。
}