请教一个异步执行的问题。

tailiyan88 2015-07-30 09:04:51
我现在执行一个循环dataset时候,由于数据量特别大。所以想在开始执行循环前告知“正在处理数据,请等待”,将这句话先打印出来,然后再执行循环。
 if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
PlaceHolder1.Controls.Add(new LiteralControl("<strong>正在处理数据,请等待</strong>"));

tishi(ds, PagePrintNext, PagePrintCount, PagePrintIndex, csId); //这个方法是对dataset的循环。

}
}


小弟不会线程,不知道如何先输出“正在处理数据,请等待”,然后再执行循环体。
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mnxm 2015-07-31
  • 打赏
  • 举报
回复
winform参考#2 webform参考#1 #3,替代方案是采用ajax(轮询、推送暂不考虑)
  • 打赏
  • 举报
回复
引用 2 楼 u012012237 的回复:
这个示例你可以参考一下,你可以在MSDN上看看Thread类的一些属性、方法,只有你真的了解这些底层的东西,写起来.....
asp.net 程序完全不能这样设计,b/s架构与console程序的基本原理就不同,因此它行不通。
风云再起9310 2015-07-30
  • 打赏
  • 举报
回复
这个示例你可以参考一下,你可以在MSDN上看看Thread类的一些属性、方法,只有你真的了解这些底层的东西,写起来才容易些。 https://msdn.microsoft.com/zh-cn/library/system.threading.thread.aspx
  internal class Program
    {
        private int interval = 200;
        private static void Main(string[] args)
        {
            Program p = new Program();
            //创建一个线程实例
            Thread nonParameterThread = new Thread(p.NonParameterRun);
            //开始执行NonParameterRun()方法
            nonParameterThread.Start();

        /// <summary> 
        /// 不带参数的启动方法 
        /// </summary> 
        public void NonParameterRun()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("系统当前时间毫秒值:" + DateTime.Now.Millisecond);
                Thread.Sleep(interval); //让线程暂停,interval的单位是毫秒 
            }
        }
    }
  • 打赏
  • 举报
回复
你这个说法不符合web的基本原理。浏览器端与你的asp.net端程序的通讯是“一问一答”的,没有什么“两阶段的”流程。要想显示“请等待.....”,那么你在asp.net端程序被调用之前,在客户端就应该已经显示了。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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