小编Thu*_*3eR的帖子

使用线程来加速进程

我继承了一个包含很长项目列表的应用程序.

这花了几个小时来循环,所以我想我可以通过运行线程来优化它.

例:

        foreach (var d in data)
        {
            try
            {
                // do alot of logic, takes time
            }
            catch (Exception e)
            {
              // catch error

            }

        }
Run Code Online (Sandbox Code Playgroud)

我以为我可以通过以下方式优化它:

        foreach (var d in data)
        {
            try
            {
                ExecutionMethodThread(d);
            }
            catch (Exception e)
            {

            }

        }

    private  void ExecutionMethodThread(data d)
    {
        Thread thread = new Thread(() => MethodThread(d));
        thread.Start();
        thread.Join();

    }
Run Code Online (Sandbox Code Playgroud)

虽然当我在foreach循环中设置断点时,我仍然注意到它等待每个项目完成后再继续下一个.这显然不是我想要的,因为我希望这个列表只是贯穿循环,我会有多个项目有自己的线程simultaniosly.

我该如何实现这一目标?

澄清:

循环开始

第一项启动一个线程并执行逻辑

第二项不等待第一项,获得自己的线程和执行逻辑等

c# multithreading console-application

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

如何从对象获取属性?

我创建了一个具有布尔属性和集合的对象.

我所做的:

我有一个在post上调用的方法,后者又调用另一个返回对象的方法.我的问题是我没有得到对象属性.

public object methodThatReturnsAnObject(string a, string b)   
{
    object data = new {isSaved = false, personsToCredit = ""}

    // perform my code and if all is valid i set values to my object properties and return the object

    data = new {isSaved = valid, personsToCredit = persons }

    return data;    
}
Run Code Online (Sandbox Code Playgroud)

我的另一种方法:

object Information = methodThatReturnsAnObject(string a, string b);
Run Code Online (Sandbox Code Playgroud)

我的问题是什么?当我调试Information对象包含我想要获取的两个属性但是当我键入Information.isSaved它时它说信息不包含定义isSaved

c# asp.net

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

如何将GenericList <T>转换为List <class>?

我试图在我的代码中做一些模拟,为此我想我会创建一个通用的方法,我可以发送de desiered类型,我想要返回.码:

private List<T> setSimulation<T>(Simulation simutlation, List<T> data)
{
    var model = (List<TrainAnnouncement>)data;


    return data;
}
Run Code Online (Sandbox Code Playgroud)

在某一点上,我需要在这个泛型方法中调用方法.所有这些方法都返回特定类的List.我的想法是我可以简单地将数据转换为desiered列表并调用我的方法.

可悲的是,这不起作用,我想知道为什么?以及如何正确实现这一点?

c# generics asp.net-mvc asp.net-mvc-5

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

当用户在引导模式对话框之外单击时如何捕获事件?

设想

  1. 我点击一个按钮
  2. 对服务器进行 Ajax 调用
  3. 返回数据并显示模态

问题

当用户单击关闭按钮或角落中的“X”时,我通过为这两个元素分配一个类并向此类分配一个事件来捕获此事件。

代码

$(document).on("click", ".dialogTankClose", function() {
    //some code
})
Run Code Online (Sandbox Code Playgroud)

我的问题是,当用户单击对话框外部或按“转义”时,我无法弄清楚如何捕获。

$(document).on("click", "modalCloseEvent",function(){
// how to catch this?
})
Run Code Online (Sandbox Code Playgroud)

我怎样才能抓住这个?

javascript jquery asp.net-mvc-5

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

如何在where子句中使用linq设置条件过滤器?

我有一个叫做的波浪状况 accessories

如果是真的那么我想确保一个单元格值不为空,否则它可以为空.我有以下内容:

var items = (from a in allRowsrows
        where accessories == true ?  a["MASTERID"].ToString() != "": a["MASTERID"].ToString() == "" &&
              a["ITEMNO"].ToString() != a["NEWITEMNO"].ToString() ||
              a["LABEL"].ToString() != a["NEWVISITEMNO"].ToString()
        select new ItemsToUpdate
        {
            isAccessory = accessories,
            Item = a
        }
    ).ToList();
Run Code Online (Sandbox Code Playgroud)

问题:使用上述内容时,简单地说它没有正确过滤.

ITEMNO cell, `NEWITEMNO` cell are the same , LABEL cell and `NEWVISITEMNO` cell are also the same 
Run Code Online (Sandbox Code Playgroud)

然后这应该给我一个包含0项的列表,但我仍然在我的列表中获取项目.

我究竟做错了什么?

编辑:

修改后的代码

var items = (from a in allRows
                     where accessories == true ?  a["MASTERID"].ToString() != "": true && …
Run Code Online (Sandbox Code Playgroud)

.net c# linq

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

当我有一个参数对象时,为什么我需要使用$?

我最近在jquery进行了实验,想学习如何将文本框中的对象发送到我的脚本.例:

   <asp: textbox id="box1" onchange="javascript: test(this);" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

脚本:

function test(obj){

if(parseInt(obj.val())){
// code
}
}
Run Code Online (Sandbox Code Playgroud)

这没用!我后来发现我必须使用"$"符号来完成这项工作,如下所示:

$(OBJ).VAL()

为什么?我想我已经在参数中有了我需要的对象,为什么我需要再次选择它?

谢谢!

asp.net jquery

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

如何让IndexOf()方法返回正确的值?

我一直在使用googlemaps,我现在正在寻找格式坐标.

我得到以下格式的坐标:

地址(坐标)缩放级别.

我使用indexof方法得到"("+1的开头,这样我得到坐标的第一个数字,并将这个值存储在我称之为"start"的变量中.

然后我做同样的事情,但这次我得到索引")"-2得到最后一个坐标的最后一个数字,并将这个值存储在我称之为"结束"的变量中.

我收到以下错误:"索引和长度必须引用string.Parameter name中的位置:length"

我得到以下字符串作为一个imparameter:

"Loddvägen 155, 840 80 Lillhärdal, Sverige (61.9593214318303,14.0585965625)5"
Run Code Online (Sandbox Code Playgroud)

根据我的计算,我应该在start变量中得到值36,在end变量中得到值65

但出于某种原因,我在开始时得到41,在结束时得到71.

为什么?

public string RemoveParantheses(string coord)
        {
            int start = coord.IndexOf("(")+1;
            int end = coord.IndexOf(")")-2;

            string formated = coord.Substring(start,end);
            return formated;
        }
Run Code Online (Sandbox Code Playgroud)

然后我尝试硬编码正确的值

string Test = cord.Substring(36,65);
Run Code Online (Sandbox Code Playgroud)

然后我得到以下错误:

startindex不能大于字符串的长度.参数名称startindex

我理解这两个错误的意思,但在这种情况下,它们是不正确的,因为我不会超出字符串长度值.

谢谢!

.net c# asp.net

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

如何确保我的<br>标签被读作html而不是文本

我有一个asp.net页面.在一个特定页面上,我可以添加注释,当我添加这些注释时,它们会保存到数据库中.当我需要新行时,当我在后端代码中查看它时,会自动显示"\n"标记.

所以现在当我收到回复时我想回复我的评论,但我希望他们在那些显示"\n"的特定地方有空位.

我在我的后端代码(cs)中尝试过这个:

Text = text.replace("\n", "<br/>")
Run Code Online (Sandbox Code Playgroud)

结果我得到:

my test<br/> test text new line<br/>
Run Code Online (Sandbox Code Playgroud)

我的<br>标签显示为文本.

为了澄清我基本上要实现这个目标: 为什么我的"<br />"标签转换为"< br />"?

但是从C#的后端代码.

我一直在谷歌上搜索,但未能找到答案.

c# asp.net

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

正则表达式密码策略不起作用

当我的密码即将被更改时,我被赋予了验证密码的任务.密码需要:

  • 至少8个字符长
  • 至少有一个大写字母
  • 至少有一个小写字母
  • 至少有一个数字
  • 至少有一个特殊的charachter

这是我正在使用的正则表达式:

^.*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&+=-_]).*$
Run Code Online (Sandbox Code Playgroud)

因为我不是正则表达式的专家,所以我一直在关注Code Project教程(我发现它非常有帮助).虽然我花了超过30分钟阅读教程,但我仍然无法理解问题所在.

问题:
正则表达式寻找除特殊字符之外的所有内容.我没有看到问题.

在我寻找答案时,我遇到了derekslager.com博客,该博客有一个非常好的页面用于测试表达式.

.net regex

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

如何将通用类型的项添加到列表中?

应该相对简单,但我无法弄清楚,我有以下内容:

  public static List<T> GetList <T>(dynamic data)
    {
        var lst = new List<T>();

        foreach (var d in data)
        {
            lst.Add(new T { Value = d.Id.ToString(), Text = d.Name };);
        }

        return lst;
    }
Run Code Online (Sandbox Code Playgroud)

errror:

在此输入图像描述

c# asp.net

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