小编usr*_*usr的帖子

Haskell问题:限制使用show的数据类型

码:

data Exp a = Const a | Eq (Exp a) (Exp a)
Run Code Online (Sandbox Code Playgroud)

我希望Const a包含一个show类型的值,以便我可以在以后打印它.所以在C#中我会写:

class Const : Exp { IShow X; }
class Eq : Exp { Exp X, Y; }
Run Code Online (Sandbox Code Playgroud)

我怎么能在Haskell做到这一点?

haskell types existential-type typeclass gadt

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

C# 中的“带分号的空行”是什么意思?

我偶然发现了这段代码,并想知道为什么 C# 编译器不引发警告或错误。严格来说,我想我试图执行实际上有效的任何事情?(对于空行)

空行上的分号

c# syntax

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

哪些浏览器支持CSS:在{content:"x"之前; }

哪些浏览器支持CSS:在{content:"x"之前; }?我找不到有关此问题的任何信息.似乎CSS属性内容在社区中是未知的,虽然看似有用.

css browser cross-browser pseudo-element

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

sys.dm_os_wait_stats中的"MISCELLANEOUS"是什么?

检查sys.dm_os_wait_stats对我来说是这样的:

在此输入图像描述

什么MISCELLANEOUS意思?文档不说什么.等待统计数据刚刚被清除.MISCELLANEOUS随着时间的推移正在稳步增长.

t-sql sql-server sql-server-2005

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

ASP.NET MVC中的WebClient死锁(同步动作方法)

public class HomeController : Controller
{
    public ActionResult Index()
    {
        Task<string> t = DownloadStringTaskAsync(new Uri("http://www.google.com/search?q=aspnet"));
        t.Wait();
        string res = t.Result;

        return View((object)res);
    }

    Task<string> DownloadStringTaskAsync(Uri address)
    {
        TaskCompletionSource<string> tcs = new TaskCompletionSource<string>();
        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += (s, e) => tcs.SetResult(e.Result);
        wc.DownloadStringAsync(address);
        return tcs.Task;
    }
}
Run Code Online (Sandbox Code Playgroud)

该操作永远不会返回,请求将暂停.

我们正在为所有异步操作使用TPL任务,并且必须包装一些WebClient的方法,直到我们切换到框架4.5.

上述方法DownloadStringTaskAsync是其中一个包装器的简化版本.

我无法弄清楚为什么等待任务会使aspnet中的线程死锁并在控制台或桌面应用程序中正常工作.

这是死锁线程的样子.

请求线程

[在睡眠中,等待或加入]
mscorlib.dll!System.Threading.Monitor.Wait(object obj,int millisecondsTimeout,bool exitContext)+ 0x18 bytes mscorlib.dll!System.Threading.ManualResetEventSlim.Wait(int millisecondsTimeout,System .Threading.CancellationToken cancellationToken)+ 0x264 bytes
mscorlib.dll!System.Threading.Tasks.Task.InternalWait(int millisecondsTimeout,System.Threading.CancellationToken cancellationToken)+ 0x166 bytes mscorlib.dll!System.Threading.Tasks.Task.Wait( int millisecondsTimeout,System.Threading.CancellationToken cancellationToken)+ 0x41 bytes …

c# asp.net-mvc asynchronous task-parallel-library

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

DateTime是否相对于ToUniversalTime和ToLocalTime往返?

在下面的代码片段中,我声称保证为任何DateTime值保留的往返属性是什么?

DateTime input = GetAnyDateTime();
DateTime roundtripped = input.ToUniversalTime().ToLocalTime();
Assert.IsTrue(input == roundtripped);
Run Code Online (Sandbox Code Playgroud)

断言是否也适用于相反的往返(input.ToLocalTime().ToUniversalTime())?

可能的边缘情况是时区,夏令时,闰秒,无法代表或模糊的当地时间,......

.net time timezone datetime

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

Azure DocumentDB的限制是什么?

我们想要使用Azure DocumentDB但在此之前想知道是否存在任何限制,缺点,缺点和优势?

azure azure-cosmosdb

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

在Parallel.Foreach中使用ParallelOptions在串行和并行操作之间切换

我们在代码中广泛使用了Parallel.Foreach,我们唯一的挑战是如何在DEBUG模式下使用可视调试使其成为串行,以下是我们正在做的,请分享您的观点:

public static class ParallelOptionsWrapper
{
    // Private instance of ParallelOptions 
    private static readonly ParallelOptions @ParallelOptions;

    // Private constructor
    static ParallelOptionsWrapper()
    {
        @ParallelOptions = new ParallelOptions();

#if DEBUG
        // 1 is sequential
        @ParallelOptions.MaxDegreeOfParallelism = 1;
#else
        // -1 is unlimited
        @ParallelOptions.MaxDegreeOfParallelism = -1;
#endif
    }

    public static ParallelOptions Instance() { return @ParallelOptions; }
}
Run Code Online (Sandbox Code Playgroud)

以下是用法:

Parallel.ForEach(EnumerableList, ParallelOptionsWrapper.Instance(), element =>
{
// Code to run in Parallel
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,所有Parallel.Foreach调用都具有ParallelOptions的相同实例,在我看来应该没问题.

这样安全吗?这有效吗?

c# parallel-processing multithreading task-parallel-library parallel.foreach

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

c#是否有内部额外的开销?

我有以下简单的类:

class Stack {
  public class Node // inner class
  {
      string item;
      Node next;
  }
}
Run Code Online (Sandbox Code Playgroud)

包含N项目的堆栈使用:8 bytes (reference to String)+ 8 bytes (reference to Node)+ 16 bytes (sync block index + type object pointer).但我想知道内部课程开销.我需要额外添加8 bytes吗?所以N个项目的堆栈使用~40*N字节或~32*N字节?

.net c#

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

在C#中编写匿名函数的推荐方法是什么?

var seq = Enumerable.Range(1, 10).Reverse();
var sort1 = seq.OrderBy(i => i);
var sort2 = seq.OrderBy(delegate(int i) { return i; });
Run Code Online (Sandbox Code Playgroud)

我认为sort2更明确但排序1更短.除此之外,我真的不知道其中的区别.这样做的推荐方法是什么?

c# syntax lambda anonymous-methods

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