线程小问题

wangs_1 2011-11-15 01:32:05
我要的做的效果是,点击button按钮,启动一个服务,但是启动服务较慢,所以我要显示出一个动态的滚动图片。

但是在启动的服务的时候,动态图片是不会动得。等服务启动完后才动。我感觉可能要用到线程。求大家帮帮忙。
...全文
115 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq598235031 2011-11-15
  • 打赏
  • 举报
回复
这种进度条免费的一大把,建议公司雄厚的话,购买第三方控件美观的多
sloveb520 2011-11-15
  • 打赏
  • 举报
回复
 public delegate int AddDelegate(int x,int y);
class Program
{
static void Main(string[] args)
{
Console.WriteLine("客户端应用程序开始运行......");
Thread.CurrentThread.Name = "主线程";
Calculator cal = new Calculator();
AddDelegate del = new AddDelegate(cal.Add);
AsyncCallback callback = new AsyncCallback(OnAddComplete);
string data = "hello,everybody";
del.BeginInvoke(2, 3, callback, data);//异步调用方法
for (int i = 0; i < 3; i++)
{
Thread.Sleep(1000);
Console.WriteLine("{0}:执行{1}秒了!",Thread.CurrentThread.Name ,i);
}
Console.WriteLine("完成");
Console.ReadKey();
}

public static void OnAddComplete(IAsyncResult asyncResult)
{
AsyncResult result = (AsyncResult)asyncResult;
AddDelegate del = (AddDelegate)result.AsyncDelegate;
string data = (string)asyncResult.AsyncState;

int rtn = del.EndInvoke(asyncResult);
Console.WriteLine("计算结果为:{0},data:{1}", rtn,data);
}
}

public class Calculator
{
public int Add(int x,int y)
{
if (Thread.CurrentThread.IsThreadPoolThread)
{
Thread.CurrentThread.Name = "Pool Thread";
}
Console.WriteLine("方法调用开始");
for (int i = 0; i < 2; i++)
{
Thread.Sleep(1000);
Console.WriteLine("{0}:正在计算中......", Thread.CurrentThread.Name);
}
Console.WriteLine("方法计算完毕");
return x + y;
}
}


你先理解下吧,一个线程去启动服务,一个线程显示图片,服务启动完成后进行回调方法,关闭图片
wangs_1 2011-11-15
  • 打赏
  • 举报
回复
4楼能不能给段代码
sloveb520 2011-11-15
  • 打赏
  • 举报
回复
放张滚动的GIF图片,用异步委托试试
wangs_1 2011-11-15
  • 打赏
  • 举报
回复
不弄进度条了,有点麻烦,直接放张图片滚动就行了
幸福的小木鱼 2011-11-15
  • 打赏
  • 举报
回复
你这个不需要用线程呀,在启动服务时条用进度条呀,这里有个例子,你看一下
http://blog.csdn.net/lin_lujian/article/details/6927098

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧