小编Gar*_*ary的帖子

C#数组是否安全?

特别是

  1. 创建一个函数以将数组和索引作为参数.
  2. 创建一个元素数组.
  3. 创建一个计数循环.
  4. 在新线程的循环内部,使用传入的索引器将对象的新实例分配给数组.

我知道如何管理线程等.我很想知道这是否是线程安全的做事方式.

 class Program
{
    // bogus object
    class SomeObject
    {
        private int value1;
        private int value2;

        public SomeObject(int value1, int value2)
        {
            this.value1 = value1;
            this.value2 = value2;
        }
    }

    static void Main(string[] args)
    {

        var s = new SomeObject[10];
        var threads = Environment.ProcessorCount - 1;
        var stp = new SmartThreadPool(1000, threads, threads);
        for (var i = 0; i < 10; i++)
        {
            stp.QueueWorkItem(CreateElement, s, i);
        }

    }

    static void CreateElement(SomeObject[] s, int index)
    { …
Run Code Online (Sandbox Code Playgroud)

c# arrays multithreading thread-safety

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

从OO到10000英尺的功能编程

我一直在使用f#和Haskell来学习函数式编程.直到我能在我们公司获得f#批准,我仍然必须使用c#.我仍然在努力保持功能风格,因为我注意到了几个好处.

这是一个典型的问题.

  1. 数据库中有一个键集表,有3个键(650万行)
  2. 还有4个中小型支撑桌.
  3. 基于几个输入有复杂的公式.

我必须使用上述所有数据来计算一个值,并将其与每个键集行相关联,然后将其发送回数据库.其他4个表有很多查找.出于性能考虑,这一切都是在内存中完成的.

我确切地知道如何使用静态字典,对象模型,策略模式等在OO中进行操作,但是在功能性方面我无法摆脱使用这些结构的难闻气味.

我目前正在为功能解决方案做出以下假设.

  1. 静态词典很糟糕.看起来这个功能可能有副作用.

  2. 我需要一个Calculate函数,它接受一个不可变的对象,并返回一个带有三个键和计算值的不可变对象.在这个函数里面可能有相同风格的另一个函数.

  3. 传统的OO模式可能不会起作用.

你会如何在高水平上设计它?

我错了吗?我错过了什么吗?

f# haskell functional-programming

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

使用F#计算数字列表的笛卡尔乘积

我是f#的新手

我试着计算一组数字的笛卡尔积.我"借"了这个.

let xs = [1..99]
let ys = [1..99]
seq {for x in xs do for y in ys do yield x * y}
Run Code Online (Sandbox Code Playgroud)

有更好或更优雅的方式吗?

加里

f#

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

如何防止 React js 和 React-beautiful-dnd 中的原始容器掉落?

我正在使用 React 和 React-beautiful-dnd。

这让我难住了

我的用例是将项目从容器 1 拖动到容器 2。

  1. 容器 1 中的物品不能放入容器 1,只能放入容器 2。
  2. 如果容器 1 中的某个项目正在拖动,则容器 1 中的其余项目不应移动以允许放置。

我创建了一个示例小提琴来隔离用例 - https://codesandbox.io/s/34z92ny69p

任何帮助表示赞赏

G

javascript drag-and-drop reactjs

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

将ASP.NET MVC NHibernate应用程序部署到IIS7时出错

我有一个在vs.net开发Web服务器上工作的Asp.Net MVC应用程序.当我发布到IIS7时,我收到以下错误.我花了很多时间仍然没有解决方案!

 [NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.PipelineStepManager.ResumeSteps(Exception error) +929
   System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +91
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +508
Run Code Online (Sandbox Code Playgroud)

这是Application_Start

protected void Application_Start()
        {


                ConfigureLogging();


                ComponentRegistrar.RegisterComponents();


                NHibernateSession.InitSqlServer2005(new WebSessionStorage(this), Settings.Default.DefaultConnString);


                CacheManager.InitCaches();

            }
        }
Run Code Online (Sandbox Code Playgroud)

我迟到了这个应用程序,并不知道MVC和NHibernate的最佳实践

nhibernate asp.net-mvc iis-7

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

将Haskell Edison API和Core移植到F#有什么好处?

Edison API和Core模块是纯功能数据结构的Haskell实现

F#和原生.Net数据结构是否足以涵盖Edison API和Core中的用例?

尝试将API和CORE Haskell模块移植到F#会有什么好处吗?

f# haskell immutability referential-transparency data-structures

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

如何使用Visual Studio项目模板中的变量设置文件名

我有一个VS 2013项目模板,其中包含如下项目

<ProjectItem ReplaceParameters="true" TargetFileName="Target.xml">Target.xml</ProjectItem>
Run Code Online (Sandbox Code Playgroud)

我想要的是"Target.xml"是MyProjectName.xml.

我知道我可以在文件中使用变量但不能在名称中使用变量.

谢谢

G

vsx visual-studio-templates vsix visual-studio-extensions

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