小编And*_*agu的帖子

未实现的属性C#

一个简单的问题:为什么C#中没有任何NotImplementedAttribute?

你总是可以抛出异常,但我认为这可以作为ObsoleteAttribute工作 - >你得到使用该方法的警告.

好的,你有一个带有这个属性的方法,当你实现它时你必须手动删除属性,但我认为这比使用throw new NotImplementedException()里面的方法更安全...并等待它们被调用.

我记得读过Obsolete是硬编码到编译器中的,但也许这个有一些空余:)

这只是我的意见,也许我错了.但这是我想看到的.

谢谢

c# attributes exception

10
推荐指数
0
解决办法
1869
查看次数

任务背景工人c#

多个后台工作人员在5秒运行进程中的执行效果是否优于任务?我记得在一本书中读到一个任务是为短时间运行的过程而设计的.

我要问的是:

我有一个需要5秒钟才能完成的过程,并且有4000个过程需要完成.起初我做了:

for (int i=0; i<4000; i++) {
    Task.Factory.StartNewTask(action);
}
Run Code Online (Sandbox Code Playgroud)

并且性能很差(在第一分钟之后,3-4个任务完成,控制台应用程序有35个线程).也许这是愚蠢的,但我认为线程池将处理这种情况(它会将所有操作放入队列中,当线程空闲时,它将采取行动并执行它).

现在的第二步是手动执行Environment.ProcessorCount后台工作程序,并将所有操作放在ConcurentQueue中.所以代码看起来像这样:

var workers = new List<BackgroundWorker>();
//initialize workers

workers.ForEach((bk) =>
{
    bk.DoWork += (s, e) =>
    {
        while (toDoActions.Count > 0)
        {
            Action a;
            if (toDoActions.TryDequeue(out a))
            {
                a();
            }
        } 
    }

    bk.RunWorkerAsync();
});
Run Code Online (Sandbox Code Playgroud)

这样做的方式更好.即使我有30名背景工作人员(与第一种情况一样多的任务),它的表现要比任务好得多.

LE:

我像这样启动任务:

    public static Task IndexFile(string file)
    {
        Action<object> indexAction = new Action<object>((f) =>
        {
            Index((string)f);
        });

        return Task.Factory.StartNew(indexAction, file);
    }
Run Code Online (Sandbox Code Playgroud)

而Index方法是这样的:

    private static void Index(string file)
    {
        AudioDetectionServiceReference.AudioDetectionServiceClient client = new AudioDetectionServiceReference.AudioDetectionServiceClient(); …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task backgroundworker

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

silverlight/wpf中的交点

给出这样的路径:

<Path Stretch="Fill" Stroke="#FFD69436" Data="M 0,20 L 22.3,20 L 34,0 L 44.7,20 L 68,20 L 55.8,40 L 68,60 L 44.7,60 L 34,80 L 22.3,60 L 0,60 L 11.16,40 L 0,20 Z">
            <Path.Fill>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                    <LinearGradientBrush.GradientStops>
                        <GradientStop Color="#FFFFFF" Offset="0" />
                        <GradientStop Color="Orange" Offset="1" />
                    </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
            </Path.Fill>
        </Path>
Run Code Online (Sandbox Code Playgroud)

如何以任何角度得到该图边缘的点?让我们说我想要这个图的边缘和穿过这个图的中心的线之间的交点,与OX轴成30度角?

谢谢.

c# silverlight wpf

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

使用C#创建一个SQL Server插件

是否可以在C#中为SQL Server执行插件?

我想对数据库中的项目执行字符串匹配算法,而不将对象加载到我的c#应用程序中.有谁知道这是否可以在c#中完成(可能是SQL的插件或类似的东西).

我认为它类似于MongoDB中的Map Reduce.

c# plugins sql-server-2008

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