为了账号安全,请及时绑定邮箱和手机立即绑定

启动屏幕等待线程完成

启动屏幕等待线程完成

C#
慕无忌1623718 2019-06-28 11:03:13
启动屏幕等待线程完成我还是有问题的飞溅屏幕。我不想用这房子SC.TopMost=true.现在,我的应用程序场景如下:在方案中:[STAThread]static void Main(){     new SplashScreen(_tempAL);// where _tempAL is an arrayList     Application.Run(new Form1(_tempAL));}在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 < 4 && _serverFiles == null)     {         if (Download("c:\\ASGAQuraan", _ftpServerIP, _file))         {             StreamReader _strReader = new StreamReader                          ("c:\\ASGAQuraan\\"+_file,System.Text.Encoding.Default);             string _line = _strReader.ReadLine();             string _word;             while (true)             {                 while (_line != null)                 {                     _word = _line.Substring(0, _line.IndexOf("*"));                     int _narId = Convert.ToInt32(_word);                     _line = _line.Substring(2);我想要的是SplashScreen类中的一些内容,它等待线程完成。想知道更多细节,请告诉我需要告诉你的。
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

在两个线程中进行跟踪有点让人费解,但我要试一试,然后说.

我不完全理解您的设计,但是如果问题是当您启动第二个应用程序时,SplashScreen表单会变成白色.这很可能是因为启动屏幕忙于执行GetFromServer()中的所有代码。太忙了,以至于没有时间重新粉刷自己。

为了解决这个问题,我建议您使用后备作业部件若要执行GetFromServer方法,请执行以下操作。这将在一个单独的线程中运行该方法,并让表单的线程自由重新绘制自己。


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信