小编Ana*_*ick的帖子

无法将C#PCL的引用添加到F#PCL(VS 2015 Update 1)

我在创建F#便携式项目时遇到问题,应该从C#便携式项目中引用.添加此类引用时,将显示以下消息:

无法添加对'PortableLibrary1'的引用.可移植库项目只能引用其他可移植库项目和程序集.

使用最新的Visual Studio 2015 Update 1(版本14.0.24720.00)可以轻松复制该问题.我也安装了Xamarin.

我可以使用以下可用的任何C#便携式项目重现该问题:

  • 类库(便携式)
  • 类库(适用于iOS,Android和Windows)

以及任何类型的F#可移植库项目,具有以下可用:

  • 可移植库(.NET 4.5,Windows应用商店,Silverlight 5,Xamarin)[配置文件47]
  • 可移植库(.NET 4.5,Windows应用商店,Windows Phone 8 Silverlight,Xamarin)[配置文件78]
  • 可移植库(.NET 4.5,Windows应用商店,Windows Phone 8.1,Windows Phone Silverlight 8,Xamarin)[Profile 259]
  • 可移植库(.NET 4.5,Windows应用商店,Xamarin)[配置文件7]

我使用与C#相同的配置文件和F#,没有任何帮助.

似乎之前已经存在这样的问题(如何从C#可移植类库(PCL)添加对F#可移植库的引用),然后成功修复了该问题.但它现在再次复制.

有人可以告诉我,我错过了什么吗?也许还需要额外安装一些东西?

.net c# f# visual-studio xamarin

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

Interlocked.Increment和递增值的返回

我们有一个方法可以维护应用程序中所有事件的全局序列索引.因为它是网站,所以预计这种方法线程安全.线程安全实现如下:

private static long lastUsedIndex = -1;

public static long GetNextIndex()
{
    Interlocked.Increment(ref lastUsedIndex);
    return lastUsedIndex;
}
Run Code Online (Sandbox Code Playgroud)

但是我们注意到在一些不重负载的情况下,系统中出现了重复索引.简单测试显示,对于100000次迭代,大约有1500个重复项.

internal class Program
{
    private static void Main(string[] args)
    {
        TestInterlockedIncrement.Run();
    }
}

internal class TestInterlockedIncrement
{
    private static long lastUsedIndex = -1;

    public static long GetNextIndex()
    {
        Interlocked.Increment(ref lastUsedIndex);
        return lastUsedIndex;
    }

    public static void Run()
    {
        var indexes = Enumerable
            .Range(0, 100000)
            .AsParallel()
            .WithDegreeOfParallelism(32)
            .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
            .Select(_ => GetNextIndex())
            .ToList();

        Console.WriteLine($"Total values: {indexes.Count}");
        Console.WriteLine($"Duplicate values: {indexes.GroupBy(i => i).Count(g => g.Count() > …
Run Code Online (Sandbox Code Playgroud)

.net multithreading increment interlocked-increment

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