小编Sam*_*Sam的帖子

C#线程和阻塞

我想知道哪一种更好的方法以线程安全的方式加载数据.传统上,我使用了双锁模式,这很好地达到了目的.现在,通过添加System.Lazy类型,我想知道是否依赖于Lazy和Loading的内部更好并且以更好的方式完成工作.它看起来更干净,更容易阅读,但它更好吗?

有什么想法吗?

namespace SomeNameSpace
{
  public class DataStoreContext
  {
    private readonly static Lazy<DataStoreContext> context = new Lazy<DataStoreContext>(() => new DataStoreContext());
    private Lazy<Dictionary<string, Entity>> _entities = new Lazy<Dictionary<string, Entity>>(() => { return DataStoreContext.Instance.Load(); });
    private readonly object _syncRoot = new object();
    private DataStoreContext()
    {
    }

    public Dictionary<string, Entity> Data
    {
      get { return _entities.Value; }
    }

    public static DataStoreContext Instance
    {
      get { return context.Value; }
    }

    private Dictionary<string, Entity> Load()
    {
      // Load Data from some data store. 
      return null; …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

8
推荐指数
2
解决办法
418
查看次数

Paypal何时发送subscr_eot?

我们可以完全依赖subscr_eot激活/停用帐户吗?

假设我们有以下场景:

  1. 在9月16日,客户使用Paypal支付每月定期服务费用.

  2. 24小时后,Paypal发送"subscr_signup",然后发送"subscr_payment".此时,应用程序将授予用户访问权限.

  3. ??

问题是,Paypal会在尝试在10月16日收取付款之前发送EOT还是之前会发送?

谢谢,

paypal-subscriptions

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

使用WebForms进行MVC3路由

我有一个使用WebForms .Net 4.0的解决方案.我计划在同一解决方案中使用MVC3.我跟着Scott Hanselman的博客,事情很好.

我不得不承认我对此很陌生.但是,似乎我在路由器如何真正起作用的命名空间方面缺少很大的一部分.

目前,我们的解决方案有以下几点:

WebApplicatin: 
  Accounting
      Receivables
         ReceivablesGrid.aspx
         ReceivableForm.aspx
      Payables
        PayablesGrid.aspx
        PayablesForm
 ..etc.
Run Code Online (Sandbox Code Playgroud)

因此,您可以请求使用页面

Domain/Accounting/Receivables/ReceivablesGrid.aspx
Domain/Accounting/Receivables/ReceivableForm.aspx?Key=1
Domain/Accounting/Payables/PayablesGrid.aspx
Domain/Accounting/Payables/PayablesForm.aspx?Key=1
Run Code Online (Sandbox Code Playgroud)

....

我计划添加另一层类似于MVC.

WebApplicatin: 
      Accounting
          Receivables
             ReceivablesGrid.aspx
             ReceivableForm.aspx
             Mobile
              Controllers
                ReceivableConroller.cs
              Models
              Views
                Receivables
                   Index
                   Update
                   Edit
                   Create
          Payables
            PayablesGrid.aspx
            PayablesForm
            Mobile
              Controllers
                PayablesConroller.cs
              Models
              Views
                Payables
                   Index
                   Update
                   Edit
                   Create

     ..etc.
Run Code Online (Sandbox Code Playgroud)

当然,这不是真名.但是,我试图尽可能接近我的情况.不幸的是,如果我遵循这个是最好的,因为我可以使用可能在同一名称空间中添加的一些逻辑.此外,在根目录下创建类似于控制器,视图,模型的文件夹不适用于我的解决方案.

在Global.asax中,我添加了一条路线:

routes.MapRoute(
      "AccountingReceivablesMobile", // Route name
      "Accounting/Receivables/Mobile/{controller}/{action}/{id}", 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional });

routes.MapRoute(
      "AccountingPayablesMobile", // Route name
      "Accounting/Payables/Mobile/{controller}/{action}/{id}", 
      new …
Run Code Online (Sandbox Code Playgroud)

webforms hybrid asp.net-mvc-3

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

Delphi中的Trunc方法

我正在将一些代码移植到.Net,我意识到Trunc方法在Delphi中没有正常工作.它不会考虑您是否截断负值或正值.它将论证视为绝对的.

德尔福

Trunc(-163.78999) returns -163
Run Code Online (Sandbox Code Playgroud)

.Net实施

System.Math.Floor(-163.88888888888889) returns -164.
Run Code Online (Sandbox Code Playgroud)

我可以模仿实现,但我想知道是否有人以前见过这个.

谢谢,

c# delphi

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