小编rud*_*ter的帖子

为什么限制参数类型和对EventSource方法的计数

我现在正在用C#中的Microsoft EventSources进行实验.一个限制如下

...传递给ETW方法的参数的数量和类型必须与传递给它调用的WriteEvent重载的类型完全匹配.例如:

[Event(2, Level = EventLevel.Informational)] 
public void Info(string message, int count) 
{
   base.WriteEvent(2, message, count); 
}
Run Code Online (Sandbox Code Playgroud)

这基本上限制了您在EventSource类中编写更丰富的API.这基本上意味着您无法创建接收自定义对象的方法,并且在方法体内可以将其序列化为字符串(或WriteEvent重载支持的其他类型).

您唯一能决定的是方法名称以及反映WriteEvent重载的参数名称和计数.还是我错了?

c# trace etw-eventsource

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

ILookup与IGrouping

ILookup和IGrouping是非常相似的Linq接口.两者都绑定了值列表的键.

问题是这两个界面有什么不同.

有没有人有一个例子,你可以做一种你不能与另一种类型的东西?

什么时候应该使用"分组依据"和何时"查找"?

c# linq group-by

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

is the "is" operator just syntactic sugar for the "IsInstanceOfType" method

Are the following code snippets equivalent?

class a
{}

class b:a
{}

b foo=new b();
Run Code Online (Sandbox Code Playgroud)

//here it comes

foo is a
Run Code Online (Sandbox Code Playgroud)

//...is the same as...

typeof(a).isinstanceoftype(foo)
Run Code Online (Sandbox Code Playgroud)

或者也许其中一个其他类型方法映射更接近于运算符.例如"IsAssignableFrom"或"IsSubclassOf"

c# types keyword isinstance

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

Python和IronPython在同一台机器上?

我是Python世界的新手.

我想开始尝试Python和IronPython并比较结果.

是否可以在同一台计算机上安装Python和IronPython并相互干扰,或者在虚拟机中更好地执行此操作.

Thx提前.

python ironpython

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

如何在架构比较生成脚本期间添加 PostDeploy 脚本

我正在将数据库项目的当前版本与 dacpac(同一数据库的先前版本)进行比较。

然后我点击生成脚本按钮,正如预期的那样,我得到了更改脚本。

不幸的是,我没有将部署后脚本添加到更改脚本中。

如果我使用“发布数据库”功能并与“真实”数据库进行比较,它会使用部署后脚本创建一个更新脚本,但我在架构比较中需要此功能。

有没有我忽略的选项?

你是如何解决这个问题的?

sql sql-server deployment visual-studio-2012 sql-server-data-tools

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

TPL数据流块,它将消息的前向延迟到下一个块

我需要一个Dataflow块,它根据消息中的时间戳(LogEntry)将消息的转发延迟到下一个块.

这就是我提出的,但感觉不对.有任何改进建议吗?

  private IPropagatorBlock<LogEntry, LogEntry> DelayedForwardBlock()
    {
        var buffer = new ConcurrentQueue<LogEntry>();

        var source = new BufferBlock<LogEntry>();

        var target = new ActionBlock<LogEntry>(item =>
        {
            buffer.Enqueue(item);
        });


        Task.Run(() =>
            {
                LogEntry entry;
                while (true)
                {
                    entry = null;
                    if (buffer.TryPeek(out entry))
                    {
                        if (entry.UtcTimestamp < (DateTime.UtcNow - TimeSpan.FromMinutes(5)))
                        {
                            buffer.TryDequeue(out entry);
                            source.Post(entry);
                        }
                    }
                }
            });


        target.Completion.ContinueWith(delegate
        {
            LogEntry entry;
            while (buffer.TryDequeue(out entry))
            {
                source.Post(entry);
            }

            source.Complete();
        });

        return DataflowBlock.Encapsulate(target, source);
    }
Run Code Online (Sandbox Code Playgroud)

.net c# task-parallel-library tpl-dataflow

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

Task.WhenAll是否在后台线程并行运行任务

以下2个代码片段是否相同?

//--------------------------------------------------
1.
//--------------------------------------------------

var producer = Task.Run(async () =>
{
    await bar.ReadDataAsync();
});

var consumer = Task.Run(async () =>
{
    await bar.WriteDataAsync();
});


await Task.WhenAll(consumer, producer);

//--------------------------------------------------
2.
//--------------------------------------------------

await Task.WhenAll(bar.ReadDataAsync(), bar.WriteDataAsync());
Run Code Online (Sandbox Code Playgroud)

c# task async-await

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

X 分钟后 Singleton HttpClient 是否收到新的 HttpMessageHandler

我在工厂中注册我的 HttpClient:

services.AddHttpClient<ICatalogService, CatalogService>()
    .SetHandlerLifetime(TimeSpan.FromMinutes(2));
Run Code Online (Sandbox Code Playgroud)

此 ICatalogService 通过构造函数注入到单例服务中。

2 分钟后我会在内部收到一个新的 HttpMessageHandler 还是仅在 2 分钟后将 ICatalogService 注入到非单例服务中?

基本上,当包装 HttpHandler 用作单例时,内部 HttpMessageHandler 也会过期吗?

dependency-injection httpclient asp.net-core httpclientfactory

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

如何找出从编译的c/c ++ dll调用的Win API函数

我有一个编译的C/C++ Dll.

我想知道这个Dll调用哪个外部API函数.

你知道任何可以提供这些信息的工具吗?

谢谢.

c++ api dll winapi

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

为什么以下代码无法编译?

我无法理解为什么以下代码无法编译:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1 {
    public interface ITestCondition<T> {
    }

    public class TestConditionBase<T>: ITestCondition<T> {
    }

    public class TestCondition<T>: TestConditionBase<T> {
    }

    public static class TestConditionExtension {
        public static V Foo<V, T>(this V condition) where V: ITestCondition<T> {
            return condition;
        }
    }

    class Program {
        static void Main(string[] args) {
            new TestCondition<int>().Foo();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它说它找不到"foo".但它没有通用类型就能完美运行.

c# generics types compiler-errors

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