用 chukeh.dll 实现 web 端的多线程操作

 

详细说明

示例下载

 

这些方法可以在 Web 应用中实现用户/全局级别的多线程任务,并可监控状态及控制。

Web 多线程适合实现长时间的 Web 请求或其它操作,例如统计、分析、备份等操作。

建议结合 Ajax 实现 Web 多线程

用户级线程 ---- 与用户相关,每个用户都可以开启一个线程,线程见相互独立,互不干扰。
例如:用户 12:00 在应用 Http://localhost/Sample 上启动线程开始统计最近一个月的数据,然后可以关掉浏览器,在一个小时后 13:00 查看线程的执行结果或进行操作

全局级线程 ---- 一个 Web 应用只能同时开启一个线程,同一个应用的任何用户都可以与此线程交互。
例如:用户使用办公室的电脑在应用 Http://localhost/Sample 上启动线程开始扫描服务器的所有文件,然后下班后可以通过家里的电脑查看应用 Http://localhost/Sample 的执行状态,并操作

 

示例代码:
        switch (Context.Request.Params["Command"])
        {
            case "CurrentStart":
                Context.Response.CacheControl = "no-cache";
                Chukeh.Data.CResult _CResult = Chukeh.Current.CurrentThreadStart("Thread", ThreadStart);
                Context.Response.Write(_CResult.Message);
                break;
            case "CurrentAbort":
                Chukeh.Data.CResult _CAResult = Chukeh.Current.CurrentThreadAbort();
                Context.Response.Write(_CAResult.Message);
                break;
            case "GlobalStart":
                Context.Response.CacheControl = "no-cache";
                Chukeh.Data.CResult _GResult = Chukeh.Current.GlobalThreadStart("Thread", ThreadStart);
                Context.Response.Write(_GResult.Message);
                break;
            case "GlobalAbort":
                Chukeh.Data.CResult _GAResult = Chukeh.Current.GlobalThreadAbort();
                Context.Response.Write(_GAResult.Message);
                break;
            case "ReloadStatus":
                switch (Chukeh.Current.CurrentThreadState)
                {
                    case CThread.ThreadState.None:
                        Context.Response.Write(Chukeh.Current.CurrentThreadArgument + "[没有线程]" + "|");
                        break;
                    case CThread.ThreadState.Running:
                        Context.Response.Write(Chukeh.Current.CurrentThreadArgument + "[运行中]" + "|");
                        break;
                    case CThread.ThreadState.Stoped:
                        Context.Response.Write(Chukeh.Current.CurrentThreadArgument + "[已终止]" + "|");
                        break;
                    default:
                        Context.Response.Write(Chukeh.Current.CurrentThreadArgument + "[未知状态]" + "|");
                        break;
                }
                switch (Chukeh.Current.GlobalThreadState)
                {
                    case CThread.ThreadState.None:
                        Context.Response.Write(Chukeh.Current.GlobalThreadArgument + "[没有线程]");
                        break;
                    case CThread.ThreadState.Running:
                        Context.Response.Write(Chukeh.Current.GlobalThreadArgument + "[运行中]");
                        break;
                    case CThread.ThreadState.Stoped:
                        Context.Response.Write(Chukeh.Current.GlobalThreadArgument + "[已终止]");
                        break;
                    default:
                        Context.Response.Write(Chukeh.Current.GlobalThreadArgument + "[未知状态]");
                        break;
                }
                break;
            default:
                break;
        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值