小编Han*_*obo的帖子

使用匿名方法调用WPF Dispatcher

我刚刚在C#.Net 4.0 WPF后台线程中意识到这不起作用(编译器错误):

Dispatcher.Invoke(DispatcherPriority.Normal, delegate()
{
    // do stuff to UI
});
Run Code Online (Sandbox Code Playgroud)

从一些例子中我发现它必须像这样铸造:(Action)delegate().然而,在其他示例中,它被转换为其他类,例如System.Windows.Forms.MethodInvoker.

谁能告诉我上面这个例子究竟出了什么问题呢?我也尝试用其他方法重现它,但它总是在没有强制转换的情况下工作:

delegate void MyAction();
void Method1(MyAction a) {
    // do stuff
}

void Method2(Action a) {
    // do stuff
}

void Tests()
{
    Method1(delegate()
    {
        // works
    });

    Method2(delegate()
    {
        // works
    });

    Method1(() =>
    { 
        // works
    });

    Method2(() =>
    {
        // works
    });

    Method2(new Action(delegate()
    {
        // works
    }));

    new System.Threading.Thread(delegate()
    {
        // works
    }).Start();
}
Run Code Online (Sandbox Code Playgroud)

那么最好的(最优雅的,更少冗余的)调用Dispatcher的方式是什么,并且它的特殊之处在于代理必须被转换?

.net c# wpf delegates dispatcher

9
推荐指数
2
解决办法
2万
查看次数

chrome 扩展 - 有没有办法永久保存文件?

我正在开发一个 chrome 扩展程序,我想将一些数据永久存储在用户系统的文件中,以便我可以在用户每次运行扩展程序时检索该数据。

有没有办法可以使用 chrome javascript API 来完成此任务?

提前致谢。

javascript google-chrome google-chrome-extension

6
推荐指数
2
解决办法
4807
查看次数

为什么使用 OleDb 导入 Excel 时会忽略第一个空行

使用.Net 的 OleDb,我尝试导入一个 Excel 表,其中第一行可以为空。我想保留 DataTable 中的空行,以便稍后能够将单元格映射到 Excel 样式的单元格名称“A1、A2、...”。但无论我做什么,第一行都会被删除。

Excel 文件如下所示:

 -   -   -
 ABC XY  ZZ
 1   2   3
 4   4   5
Run Code Online (Sandbox Code Playgroud)

其中“-”是空单元格。(我对导入格式没有影响。)

简化代码:

        string cnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"file.xls\";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
        string mySheet = "Sheet1$";

        OleDbConnection connection = new OleDbConnection(cnnStr);
        DataSet Contents = new DataSet();
        using (OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + mySheet + "]", connection))
        {
            adapter.Fill(Contents);
        }

        Console.WriteLine(Contents.Tables[0].Rows.Count); // prints: 3
        Console.WriteLine(Contents.Tables[0].Rows[0].ItemArray[0]); // prints: ABC
Run Code Online (Sandbox Code Playgroud)

知道如何保留那个空行吗?

ps:我发现如何在从 Excel 读取时计算空行,但无法重现它。

.net c# oledb excel

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