小编Tot*_*oto的帖子

在Visual Studio中解决DisconnectedContext

当我使用Visual Studio运行我的应用程序时,我总是得到一个DisconnectedContext(一个托管调试助手).鉴于Google和docs,当从其他线程调用STA上的COM对象时,可能会发生这种情况.

但是,当我看到弹出窗口中的所有线程时,我找不到这样的东西.(而且我没有发现任何奇怪的东西).

关于如何找到DisconnectedContext的方式的一些想法?

.net c# debugging visual-studio

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

让一个线程等待n个脉冲

我怎么能等待n个脉冲?

… // do something
waiter.WaitForNotifications();
Run Code Online (Sandbox Code Playgroud)

我希望上面的线程等到被通知n次(由n个不同的线程或n次由同一个线程).

我相信有一种计数器可以做到这一点,但我找不到它.

c# multithreading

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

C#最好的方式来比较一天中的两个时间

我想知道当天的指定时间是否过去了.我真的不喜欢我的方式:

private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);

internal static bool IsTimeOver()
{
    return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver ).Ticks > 0; 
}
Run Code Online (Sandbox Code Playgroud)

你好吗?

c# datetime timespan

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

System.String [*]代表什么?

所有这一切都在问题中,我Type.GetType("System.String[*]")在一些代码中,我不知道这种类型是什么,并且无法真正找到关于数组内这个星的任何信息.

关键词与此相关的是什么?

c#

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

C#阻止Collection被修改的异常

是否

 foreach(T value in new List<T>(oldList) )
Run Code Online (Sandbox Code Playgroud)

当oldList包含1百万个对象T时危险(代价高昂)?

更常见的是,在枚举期间添加/删除元素时,枚举oldList的最佳方法是什么?

c# collections enumeration

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

C#用户控件作为自定义面板

我创建了自己的用户控件,它只包含一个面板:

当我在设计器中拖动myPanel对象然后尝试在其上添加一个按钮时,该按钮实际上被添加到窗体的控件中.

我必须设置一个属性/属性才能执行此操作,另一种方法可以执行我想要的操作吗?

public class MyPanel : UserControl
{
    private Panel panelMain;

    public MyPanel()
    {
        InitializeComponent();
    }

    private void InitializeComponent()
    {
        this.panelMain = new System.Windows.Forms.Panel();
        this.SuspendLayout();
        // 
        // panelMain
        // 
        this.panelMain.BackColor = System.Drawing.SystemColors.ActiveCaption;
        this.panelMain.Dock = System.Windows.Forms.DockStyle.Fill;
        this.panelMain.Location = new System.Drawing.Point(0, 0);
        this.panelMain.Name = "panelMain";
        this.panelMain.Size = new System.Drawing.Size(150, 150);
        this.panelMain.TabIndex = 0;
        // 
        // myPanel
        // 
        this.Controls.Add(this.panelMain);
        this.Name = "MyPanel";
        this.ResumeLayout(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# user-controls winforms

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

直接访问数据库与Web服务

当我们在使用直接数据库访问或使用Web服务之间进行选择时,有哪些优点和缺点?

对于应该响应的关键应用程序(<0.5秒)以及对此Web服务/数据库的低调用(NB:Web服务将由另一个团队维护),您会选择什么?

database web-services

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

基于ID字段的并发对象锁

我有一个生产者/消费者流程.消费对象具有ID属性(类型为整数),我想一次只消耗一个具有相同ID的对象.我怎么能这样做?

也许我可以做这样的事情,但我不喜欢它(创造了太多的对象,而每天只有一两个具有相同ID的消息可以被消耗而且锁(_lockers)有点耗费时间:

    private readonly Dictionary<int,object> _lockers = new Dictionary<int,object>();
    private object GetLocker(int id)
    {
        lock(_lockers)
        {
            if(!_lockers.ContainsKey(id))
                _lockers.Add(id,new object());
            return _lockers[id];
        }
    }



    private void Consume(T notif)
    {
            lock(GetLocker(notif.ID))
           {
            ...
           }
    }

enter code here
Run Code Online (Sandbox Code Playgroud)

注意:同样的问题,ID属性是string类型(在那个cas中我可以锁定string.Internal(currentObject.ID)

c# locking

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

C#重构lambda表达式

我有几个Expression<Func<User,bool>>共享属性的表达式.例如,

Expression<Func<User, bool>> e1 = 
  (User u) => u.IsActive && u.Group != "PROCESS" && u.Name != null;
Expression<Func<User, bool>> e2 = 
  (User u) => u.IsActive && u.Group != "PROCESS" && u.Name != "A";
Expression<Func<User, bool>> e3 = 
  (User u) => u.IsActive && u.Group != "PROCESS" && u.Name != "B";
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以将u.IsActive && u.Group != "PROCESS"变量放入e1,e2和e3中?编辑:我仍然想要同一棵树.

似乎我可以通过使用Expression.Lambda<Func<User, bool>>(BinaryExpression.AndAlso(etc 构建表达式来实现它...但是它不是简化我的代码而是使它更难以阅读.

c# lambda expression-trees

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

最优化使用多个Where语句

以下请求是否自动"优化"?

var result = initial
                .Where(Predicate1)
                .Where(Predicate2)
                .Where(Predicate3);
Run Code Online (Sandbox Code Playgroud)

这相当于

var result = initial
                .Where(e => Predicate1(e) && Predicate2(e) && Predicate3(e));
Run Code Online (Sandbox Code Playgroud)

这两个陈述中哪一个更优化了两个?还是他们一模一样?

c# linq performance where

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