小编Arn*_*501的帖子

将多线程访问的ConcurrentBag转储到File的速度不够快

我已经构建了这个代码来处理大量并行字符串之间的字符串比较以加快速度.

我使用了ConcurrentBag,因此所有线程(任务)都可以写入线程安全集合.然后我将此集合转储到一个文件中.

我遇到的问题是ConcurrentBag<string> log我转储到文件的速度比写入文件的速度快.因此,我的程序会持续消耗越来越多的内存,直到内存不足为止.

我的问题是我该怎么办?改进写日志?暂停任务直到转储ConcurrentBag然后恢复任务?什么是最快的选择?

这是代码:

CsvWriter csv = new CsvWriter(@"C:\test.csv");

List<Bailleur> bailleurs = DataLoader.LoadBailleurs();
ConcurrentBag<string> log = new ConcurrentBag<string>();
int i = 0;

var taskWriteToLog = new Task(() =>
{
    // Consume the items in the bag
    string item;
    while (true)  //  (!log.IsEmpty)
    {
        if (!log.IsEmpty)
        {
            if (log.TryTake(out item))
            {
                csv.WriteLine(item);
            }
            else
                Console.WriteLine("Concurrent Bag busy");
        }
        else
        {
            System.Threading.Thread.Sleep(1000);
        }
    }
});

taskWriteToLog.Start();

Parallel.ForEach(bailleurs, s1 =>
{
    foreach (Bailleur s2 in bailleurs)
    {
        var lcs2 …
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library

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

使用数据注释无效的日期格式

我有这个带有以下数据注释的模型,因为我想以这种格式处理日期:dd.MM.yyyy

[DataType(DataType.Date)]
[DateRange(ErrorMessageResourceName = "DateBetween", ErrorMessageResourceType = typeof(WizardStrings))]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}")]
public DateTime? BirthDate1 { get; set; }
Run Code Online (Sandbox Code Playgroud)

在视图中:

@Html.EditorFor(model => model.BirthDate1 )
@Html.ValidationMessageFor(model => model.BirthDate1)
Run Code Online (Sandbox Code Playgroud)

MVC仍然使用以下格式呈现此日期:dd/MM/yyyy似乎不考虑我的数据注释.

查看呈现的HTML:

<input class="text-box single-line valid" data-val="true" data-val-required="La date de naissance est requise!" id="BirthDate1" name="BirthDate1" type="text" value="**9/9/1999 12:00:00 AM**">
Run Code Online (Sandbox Code Playgroud)

datetime asp.net-mvc-3

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

自定义错误消息不适用于 asp net mvc 3 中的日期时间验证

我有一个带有 String 属性和以下数据注释的 ViewModel :

编辑以使用字符串

[DataType(DataType.Date, ErrorMessage="Not Working !!!")]
public String StringBirthDate1 { get; set; }
Run Code Online (Sandbox Code Playgroud)

这就是我的看法

@Html.EditorFor(model => model.StringBirthDate1 )
@Html.ValidationMessageFor(model => model.StringBirthDate1)
Run Code Online (Sandbox Code Playgroud)

如果我运行我的应用程序并输入一个无效的日期,如“---”或 29.02.1900,我不会收到任何验证错误!

validation asp.net-mvc-3

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

更新一组记录t-sql的第一条记录

我有一张这样的桌子

CREATE TABLE [dbo].[tblUserLink](
    [IDUserLink] [int] IDENTITY(1,1) NOT NULL,
    [IDUser] [int] NOT NULL,
    [IDRegie] [varchar](50) NOT NULL,
    [DefaultAgency] [bit] NULL
)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个查询/脚本来更新字段DefaultAgency.我想将它设置为1,以获得具有相同IDUser的每组记录的第一条记录.

例如:

IDUserLink IDUser IDRegie DefaultAgency (Goal)
1          1      1       null           DefaultAgency to be set to 1
2          1      2       null
3          1      3       null
4          2      2       null           DefaultAgency to be set to 1
5          2      1       null     
6          3      1       null           DefaultAgency to be set to 1
 ...etc 
Run Code Online (Sandbox Code Playgroud)

我可以使用简单的SQL查询来实现这一点,还是应该编写脚本?

t-sql sql-server

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

连接多个 case when 语句的结果

我想在满足条件时显示建立在 when 语句上的多个字符串的串联。如下 :

select

case
  when T1.Field is not null then 'T1,' 
  when T2.Field is not null then /*last results*/ + 'T2,' 
  when T3.Field is not null then /*last results*/ + 'T3,'
end


from T1 
left outer join T2 on ...
left outer join T3 on ...
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2005

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

无法显示具有自定义验证属性的ErrorMessageResourceName

我基于这个问题,用asp.net mvc3和jquery validate创建自定义验证属性:

我已经更新它以使用一组字符串属性而不是bool.哪个工作正常.但是当我使用自定义ErrorMessage时,我的问题就出现了,不显示自定义消息.我无法弄清楚原因.

[RequiredOneFromGroup("PhoneGroup", 
    ErrorMessageResourceName = "PhoneGroup", 
    ErrorMessageResourceType = typeof(WizardStrings))]
public String Mobile { get; set; } 
[RequiredOneFromGroup("PhoneGroup", 
    ErrorMessageResourceName = "PhoneGroup", 
    ErrorMessageResourceType = typeof(WizardStrings))]
public String Phone { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是自定义验证属性:

[AttributeUsage(AttributeTargets.Property)]
public class RequiredOneFromGroup : ValidationAttribute, IClientValidatable
{
    public RequiredOneFromGroup(string groupName)
    {
        ErrorMessage = string.Format("You must select at least one value from group \"{0}\"", groupName);
        GroupName = groupName;
    }

    public string GroupName { get; private set; }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    { …
Run Code Online (Sandbox Code Playgroud)

validation data-annotations asp.net-mvc-3

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

javascript函数返回意外的未定义

我一定错过了一些愚蠢但为什么要sumArray回来undefined

<script>

    function sumArray(arr, n, sum){
        if(n == 0){
            console.log( arr[0] + sum ); // log shows 15 as expected
            return  arr[0] + sum;        // the function would return undefined
        }else{
            sum = sum + arr[n-1];
            sumArray(arr, n-1, sum); 
        }
    }

    var arr1 = [0,1,2,3,4,5];
    var result = sumArray(arr1, arr1.length, 0)

    console.log(result); // returns Undefined !!!

</script>
Run Code Online (Sandbox Code Playgroud)

javascript function

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