小编Sha*_*rov的帖子

取消背景工作者

我有UI显示长时间运行的状态(从ftp下载一些文本文件).为了我的目的,我使用backgroundworker,我无法取消操作.

void worker_DoWork( object sender, DoWorkEventArgs e )
    {

        try
        {
            int rowIndex = (int)e.Argument;

            //begin UI update
            StartWaitingBar(rowIndex);
            //get provider id cell
            GridViewDataRowInfo row = _proivderGridView.Rows[rowIndex];
            GridViewCellInfo provIdCell = row.Cells[ "ProviderId" ];

            var providerData = GetProviderData(Convert.ToInt32( provIdCell.Value));
            var provider =  ProviderFactory.CreateProvider(providerData);
            provider.Synchronize();
            e.Result = rowIndex;

        }
        catch (Exception exception)
        {
           return;
        }
    }
Run Code Online (Sandbox Code Playgroud)

和创建工作者的代码:

           BackgroundWorker worker = new BackgroundWorker();
           worker.DoWork += worker_DoWork;
           worker.RunWorkerCompleted += worker_RunWorkerCompleted;
           worker.WorkerSupportsCancellation = true;
           worker.RunWorkerAsync(args.RowIndex);
          _syncWorkers.Add(providerId,worker);
           ...
            var worker = _syncWorkers[providerId];

            if(worker.IsBusy)
             {
                 worker.CancelAsync();
             } …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading

5
推荐指数
1
解决办法
5941
查看次数

基于c#类获取*.proto文件

我有以下用例:有几个用 ProtoContract 类装饰的程序集,我想根据程序集生成 proto 文件。所以问题是如何做到这一点?

我的第一个意图是使用 Serailizer.GetProto 但它是通用方法,对我不起作用,因为我只知道运行时的类类型。

另外为什么在 r480 GetProto 中没有实现?

我也知道 VS08/10,但它似乎对我的场景没有帮助。

提前致谢。

protobuf-net

4
推荐指数
1
解决办法
934
查看次数

log4net:不同类型的不同信息颜色

我有 log4net,我想在同一个程序集中为不同类型(两种特殊类型)使用不同的信息颜色。是否可以?如果可能我该怎么办?

提前致谢。

更新:Appender 应该是 ColoredConsoleAppender。

.net c# logging log4net

3
推荐指数
1
解决办法
1301
查看次数

Angularjs + kendo-ui treeview

我有一些路线:

when('/tvtest/:userid', {templateUrl: 'template/usertv', controller: SomeTest}).
Run Code Online (Sandbox Code Playgroud)

使用emebedded kendo-ui控件加载一些html:

<html>
<head>
    <title></title>
    <script type="text/javascript" src="http://localhost:7000/myservice/script/jquery.min.js"></script>
    <script type="text/javascript" src="http://localhost:7000/myservice/script/kendo.all.min.js"></script>

   </head>
<body>

    <h1>{{"Hello"}}</h1>

        <div id="example" class="k-content">
            <div class="demo-section">
                <ul id="treeview"/>
            </div>

            <script >
             console.log("test message");
             var dataSource = new kendo.data.HierarchicalDataSource({
            transport: {
                read: {
                url: "http://demos.kendoui.com/service/Employees",
                dataType: "jsonp"
            }
                        },
            schema: {
            model: {
                id: "EmployeeId",
                hasChildren: "HasEmployees"
                    }
                    }
                });

            $("#treeview").kendoTreeView({
                            dataSource: dataSource,
                            dataTextField: "FullName"
                            });
            console.log(kendo);

    dataSource.read();
            </script>

    {{user.UserName}}

        </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

它是示例树视图,它不适用于路由,它打印"Hello",一些用户名,但它不显示treeview,它甚至不在控制台上打印"测试消息",它甚至没有尝试加载jquery和kendo scipts.是因为加载某些模板时会忽略脚本标记的内容吗?我听说过angular- kendo 项目,但我很好奇是否有可能只在AngularJS和kendo-ui框架内完成?看来我只是做错了......

更新:

好吧,我明白在angular-kendo中似乎有些事情......但我无法让treeview工作:

我有控制权,比如: …

javascript angularjs kendo-treeview

2
推荐指数
1
解决办法
5649
查看次数