小编Har*_*son的帖子

await和ContinueWith之间的区别

有人可以解释,如果awaitContinueWith是在下面的例子中同义与否.我正在尝试第一次使用TPL并且已经阅读了所有文档,但是不明白其中的区别.

等待:

String webText = await getWebPage(uri);
await parseData(webText);
Run Code Online (Sandbox Code Playgroud)

继续:

Task<String> webText = new Task<String>(() => getWebPage(uri));
Task continue = webText.ContinueWith((task) =>  parseData(task.Result));
webText.Start();
continue.Wait();
Run Code Online (Sandbox Code Playgroud)

在特定情况下,一个优先于另一个吗?

c# task task-parallel-library async-await

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

从同步方法调用异步方法

我试图从同步方法运行异步方法.但我不能等待异步,因为我在一个同步方法方法.我不能理解TPL,因为这是我第一次使用它.

private void GetAllData()
{
    GetData1()
    GetData2()
    GetData3()
}
Run Code Online (Sandbox Code Playgroud)

每个方法都需要先前的方法来完成,因为第一个方法的数据用于第二个方法.

但是,在每个方法中我想要启动多个Task操作以加快性能.然后我想等他们所有人完成.

GetData1看起来像这样

    internal static void GetData1 ()
    {
        const int CONCURRENCY_LEVEL = 15; 
        List<Task<Data>> dataTasks = new List<Task<Data>>();
        for (int item = 0; item < TotalItems; item++)
        {
            dataTasks.Add(MyAyncMethod(State[item]));
        }
        int taskIndex = 0;
        //Schedule tasks to concurency level (or all)
        List<Task<Data>> runningTasks = new List<Task<Data>>();
        while (taskIndex < CONCURRENCY_LEVEL && taskIndex < dataTasks.Count)
        {
            runningTasks.Add(dataTasks[taskIndex]);
            taskIndex++;
        }

        //Start tasks and wait for them …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading asynchronous

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

在XIRR公式中的范围(系列)中包括非相邻单元格

我使用的XIRR公式如下:

=XIRR(E$11:E17,B$11:B17)
Run Code Online (Sandbox Code Playgroud)

但需要在值范围和日期中添加一个额外的非相邻单元格.

我的第一次尝试:

=XIRR((E$11:E17,H17),(B$11:B17,B17))
Run Code Online (Sandbox Code Playgroud)

结果 #VALUE

我试图使用CHOOSE功能进行如下操作:

=XIRR(CHOOSE({1,2},E$11:E17,H17),CHOOSE({1,2},B$11:B17,B17))
Run Code Online (Sandbox Code Playgroud)

但这并不能产生正确的结果.

我无法弄清楚如何在范围的末尾添加一个单元格.以下确实可以给出正确的结果但不适合我,因为我需要使用范围和单个细胞,而不是所有单个细胞

=XIRR(CHOOSE({1,2,3},E11,E12,H13),CHOOSE({1,2,3},B11,B12,B13))
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

excel excel-formula xirr

7
推荐指数
2
解决办法
8320
查看次数

SQL中违反的唯一约束

我正在尝试将数据添加到我的SQL数据库中,当我输入以下代码时:

INSERT INTO EMPLOYEES 
VALUES('100','STEVEN','King','sking@yahoo.com','PSEUDO',
to_date('17-JAN-87','dd-mm-yy'),'AD_VP',24000,0.45,90);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR at line 1:
ORA-00001: unique constraint (ODEHat01.SYS_C00292486) Violated
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么,因为当我描述我的表(desc employees;)时,它表明我有10个字段,我试图将数据输入到10个字段中.非常感谢任何帮助,所以我可以将数据输入我的员工表.谢谢.

sql oracle unique-constraint

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

可以使用&&或|| 在switch语句中?Visual C#

所以我正在制作一个Rock Paper Scissor游戏,我对它做了一些调整,包括生活和其他事情.现在我陷入了switch语句.我的if语句工作正常:

private void Result_TextChanged(object sender, EventArgs e)
{
     if (playerscore == 1 || pcscore == 1)
     {
          PlayerLife.Image = Properties.Resources.Five;
     }
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何将其转换为switch语句?

private void Result_TextChanged(object sender, EventArgs e)
{              
    switch (playerscore || pcscore)
    {
         case 1:
             PlayerLife.Image = Properties.Resources.Five;
             break;
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎没有用.

c# if-statement switch-statement

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

Stream stream = WriteableBitmap.PixelBuffer.AsStream()缺失

我正在写windows store app(8.1),我有样本(可能是win 8.0):

private WriteableBitmap WriteableBitmap;
…
WriteableBitmap = new WriteableBitmap(500,500);
…
using (Stream stream = WriteableBitmap.PixelBuffer.AsStream())
{
    …
}
Run Code Online (Sandbox Code Playgroud)

所以我创建了新的win 8.1项目并尝试以同样的方式完成,但是当我到达时:

using (Stream stream = WriteableBitmap.PixelBuffer.AsStream())
Run Code Online (Sandbox Code Playgroud)

我的项目不认识*.AsStream()方法,谁能告诉我为什么?

c# extension-methods buffer windows-8

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