小编pri*_*iya的帖子

使用任务工厂存储每个任务的任务完成时间

我正在使用任务工厂生成并行线程,我的代码如下.我有要求打印每个线程的完成时间,但不知道如何检查每个线程.目前我的代码正在等待所有任务完成,然后计算时间.

stp1.Start();
        for (int i = 0; i < tsk.Length; i++)
        {
            tsk[i] = Task.Factory.StartNew((object obj) =>
            {
                resp = http.SynchronousRequest(web, 443, true, req);
            }, i);
        }
        try
        {
            Task.WaitAll(tsk);
        }
        stp1.Stop();
Run Code Online (Sandbox Code Playgroud)

c# multithreading

7
推荐指数
1
解决办法
632
查看次数

错误:在构建c应用程序以使用libxml2解析xml时,不能包含iconv.h

我使用libxml2来解析xml但是在编译它抛出的解决方案时

fatal error : cannot open iconv.h

当我把它放在iconv.h那里然后再次重建然后再次抛出其他

error unable to open include file sys/cdefs.h.

我最终陷入了恶性循环.请帮忙

c libxml2

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

C代码中if语句的未处理异常

我使用的是Visual Studio 2010,在下面的代码片段中,fseek之后的if语句出现异常.

int load_filenew(char *filename, char **buffer)
{
    int size = 0;
    FILE *fp = 0;

    fp = fopen(filename, "rb");
    if (!fp)
    {
        printf(" fopen failed.\n");
        return 1;
    }

    fseek(fp, 0, SEEK_END);
    size = ftell(fp);
    fseek(fp, 0, SEEK_SET);

    if (size)
    {
        if (*buffer)
        {
            free(*buffer);
        }
        *buffer = 0;
        *buffer = (char *)malloc(size + 1);
        if (!*buffer)
        {
            printf(" malloc failed.\n");
            fclose(fp);
            return 3;
        }
        memset(*buffer, 0, size + 1);
        fread(*buffer, size, 1, fp);
        (*buffer)[size] = '\0';
    }
    else …
Run Code Online (Sandbox Code Playgroud)

c visual-studio-2010

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

为什么我没有使用DateTime.Now.ToString方法获取M/D/YYYY中的完整日期?

我正在使用DateTime.Now.ToString格式的方法,M/D/YYYY但没有得到所需的输出.相反,我得到了9/D/YYYY.请帮忙.目前,我的代码段如下:

DateTime d = DateTime.Now.Date;
            string Date = d.ToString("M/D/YYYY");
Run Code Online (Sandbox Code Playgroud)

c#

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

验证一个方法是否在单元测试中的另一个方法中被调用

我正在对视图模型进行单元测试,并使用带有起订量的 mbunit 来模拟类的私有方法,但我的要求是在测试的断言部分中验证是否调用了另一个方法(这是一个对话框)。单元测试下的方法。

c# unit-testing moq mvvm

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

从索引存在于另一个aray中的一个数组中删除元素

包含N个对象的数组A1.另一个包含表示第一个数组中索引的数字的数组A2.您需要从A2中删除A2中的索引所在的元素并生成压缩数组.例如:

A1 = [ a, b, c, d, e, f, g ] // N elements and N is large
A2 = [ 5, 1 ] // k elements and k is small (and constant)
Answer = [ a, c, d, e, g, _, _ ]
Run Code Online (Sandbox Code Playgroud)

我写了C#代码,如:

public class CompactingArray
{
    private Compact(array A1 , array A2)
    {
        var hash = new Hashset<int>(A2);
        foreach(int c in hash)
        {
            A1.remove(c,1);
        }

        Console.WriteLine(A1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要O(n)复杂度代码而不使用任何内置函数.请在不使用任何内置函数的情况下建议C#代码.

c# arrays algorithm

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

当先前的调用仍在进行时,无法重新调用 BeginGetRequestStream/BeginGetResponse

我在任务工厂内调用 httpwebresponse ,在执行 1 次后它会抛出异常
Cannot re-call BeginGetRequestStream/BeginGetResponse while a previous call is still in progress
我的代码如下所示:

for (int i = 0; i < tsk.Length; i++) 
{ 
   tsk[i] = Task.Factory.StartNew((object obj) => 
   { 
        System.Diagnostics.Stopwatch watch = Stopwatch.StartNew();
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        watch.Stop(); 
   }, i);
}
Run Code Online (Sandbox Code Playgroud)

如何解决此问题

c# multithreading httpwebrequest

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