求高手帮忙解决界面停顿的问题

chinaspxxu 2005-04-22 01:00:56
我在程序中要执行一个申请磁盘空间的操作
public void ApplyDisk()
{
// 在本地预定空间(竟然在多线程下不用先预定空间)
FileStream sw = new FileStream(this.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
sw.Write(new byte[(int)this.size], 0,(int)this.size);
sw.Close();
sw = null;

}
如果申请的空间过大,会引起界面的停顿,我想是否把ApplyDisk()作为后台线程处理,在ApplyDisk()结束后再执行其他操作!?
还是有其他更好的解决办法!?
...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
iGray 2005-04-22
  • 打赏
  • 举报
回复
解决方案二:利用委托来异步调用ApplyDisk();

delegate void dl();
dl dlAD = new dl(ApplyDisk);

dlAD.BeginInvoke(null, null);//异步调用
iGray 2005-04-22
  • 打赏
  • 举报
回复
解决方案一:创建一个新线程来执行ApplyDisk();
using System.Threading;

Thread threadAD = new Thread( new ThreadStart(ApplyDisk));
threadAd.Start();//这样调用
xczgb 2005-04-22
  • 打赏
  • 举报
回复
可以用异步!
凨叔 2005-04-22
  • 打赏
  • 举报
回复
“在ApplyDisk()结束后再执行其他操作!?”

如果你要做同步处理的话,引起界面停顿时肯定的。你可以把鼠标设置为等待状态呀!

110,566

社区成员

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

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

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