相关疑难解决方法(0)

C#中的多线程闪屏?

我想在应用程序加载时显示启动画面.我有一个带有系统托盘控件的表单.我希望在加载此表单时显示启动画面,这需要一些时间,因为它正在访问Web服务API以填充一些下拉菜单.我还想在加载之前对依赖项进行一些基本测试(也就是说,Web服务可用,配置文件是可读的).随着启动的每个阶段的进行,我想要通过进度更新启动屏幕.

我一直在阅读很多关于线程的内容,但是我对它应该控制的地方感到迷茫(main()方法?).我也想知道它是如何main()工作的,这是应该创建的线程吗?现在,如果带有系统托盘控件的表单是"生命"表单,那么它应该来自那里吗?在形式完成之前不会加载吗?

我不是在寻找代码讲义,更多的是算法/方法,所以我可以一劳永逸地解决这个问题:)

.net c# multithreading splash-screen winforms

60
推荐指数
7
解决办法
4万
查看次数

飞溅屏幕等待螺纹完成

我仍然有启动画面的问题.我不想使用该属性SC.TopMost=true.

现在我的应用场景如下:

在progeram.cs中:

[STAThread]
static void Main()
{
    new SplashScreen(_tempAL);// where _tempAL is an arrayList
    Application.Run(new Form1(_tempAL));
}
Run Code Online (Sandbox Code Playgroud)

在SplashScreen类中:

public SplashScreen(ArrayList _Data)
{
    DisplaySplash()
} 
private void DisplaySplash()
{
    this.Show();
    this.TopMost = true;
    this.CenterToScreen();
    this.SetTopLevel(true);

    _allServerNarrators = new string[10];
    for (int i = 0; i < _allServerNarrators.Length; i++)
        _allServerNarrators[i] = null;

    GetFromServer();

    this.Hide();
    _serverData = new ArrayList();
    _thisData.Add(_allServerNarrators);
    _thisData.Add(_serverNarrators);

}
private void GetFromServer()
{
    _serverNarrators = new ArrayList();
    string _file = "Suras.serverNar";

    if (!Directory.Exists("c:\\ASGAQuraan"))
        Directory.CreateDirectory("c:\\ASGAQuraan");

    while (counter < …
Run Code Online (Sandbox Code Playgroud)

c# splash-screen winforms

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×2

splash-screen ×2

winforms ×2

.net ×1

multithreading ×1