小编Cla*_*lay的帖子

Task.Delay是否值得取消?

我最近使用我在很多地方描述的取消模式重新实现了一大堆异步WCF服务方法 - 在等待Task.WhenAny启动任务和Task.Delay的地方.当然,现有任务不可取消,但希望在以后的版本中解决.

在我的情况下,默认持续时间Task.Delay由服务设置控制.在绝大多数情况下,结果是希望的任务在必要的时间内完成.环境通常很慷慨.

大多数(但不是全部)我见过的例子都没有打扰取消Task.Delay.它是如此便宜,不值得担心吗?我知道取消会引发异常.如果我取消延迟,我应该处理异常吗?

这是我所做的所有服务方法调用的方法:

private async Task<T> GetOrTimeout<T>( Task<T> task, [CallerMemberName] string caller = "" )
{
  using ( var cts = new CancellationTokenSource( ) )
  {
    try
    {
      var timeout = GetDelay( cts.Token );
      var first = await Task.WhenAny( task, timeout );
      if ( first == timeout ) throw new TimeoutException( Properties.Resources.TimeoutOccurredInService.Fmt( caller ) );
      cts.Cancel( );  //--> haven't been doing this. Should I?
      return await task;
    }
    catch ( Exception …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf task-parallel-library async-await

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

在Visual Studio 2015中发布时如何避免从数据库中删除图表

我在VS 2015中有一个SQL Server 2014数据库项目.我还在SSMS中创建了几个架构图(因为VS没有我知道的任何架构图).它是项目生命周期的早期阶段,并且发生了大量的重构.SSMS图表善于在变化面前更新自己 - 这非常好.我想在开发环境中保留(重新)发布的图表.

问题是,为了跟上重构,我需要删除目标数据库中不再存在于项目中的东西(或者只是在开发环境中重新创建目标数据库)......但这会导致我的图表要被吹走 我还没有想出一个干净的方法来避免这种情况,这是重建图表的好处.有没有人想出一个相当干净的方式来逐步发布,同时删除项目残骸但保留图表?

sql-server diagram ssms visual-studio-2015

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

如何将嵌套的三元运算符转换为嵌套的if-else语句?

我很难将下面的C#代码转换为if-else语句,以便可以理解业务逻辑。有人可以帮我检查我的转换是否正常吗?

码:

dateInit = objInstance == null ? (DateTime?)null:
                objInstance.DateAnt == null ?
                    objInstance.DatePost > otherObjInstance.DateCon ?
                        (DateTime?)null :
                        objInstance.DatePost :
                objInstance.DateAnt;
Run Code Online (Sandbox Code Playgroud)

我的转换:

if (objInstance == null)
{
    dateInit = (DateTime?)null;
}
else
{
    if (objInstance.DateAnt == null)
    {
        if (objInstance.DatePost > otherObjInstance.DateCon)
        {
            dateInit = (DateTime?)null;
        }
        else
        {
            dateInit = objInstance.DatePost;
        }
    }
    else
    {
        dateInit = objInstance.DataAnt;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# datetime if-statement ternary

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

发送UDP广播后接收响应

我遇到了广播问题:我可以发送消息,接收者接收并发送回,但我无法得到这些响应。不过,它显示在wireshark 上,所以它就在那里。

这是我在发件人端所做的:

  • 创建套接字
  • 将广播选项设置为 1
  • 设置为非阻塞
  • 使用连接将其设置为目标端口和广播 IP
  • 发送消息
  • 使用 recv() 继续接收以获取响应

但是我没有在那个 recv 中得到响应,即使它显示在 Wireshark 上并且它没有被计算机拒绝(没有 ICMP 消息)。

这个过程有什么问题,还是我看的地方不对?

(顺便说一句,当不使用广播选项和目标 IP 时,它工作正常)

c sockets udp broadcast winsock2

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

为什么我需要手动输入 HTTPS 才能访问我的网站?

为什么我每次在浏览器中都需要在网站 URL 前输入https ?虽然我的网站启用了SSL,但它会转到默认的 IIS 页面。请在这件事上给予我帮助。

我在浏览器中输入的网址 - fdrms.visiontek.co.in/

如果我想在每次需要在上述 URL 之前添加https://时查看启用 SSL 的页面,例如 -- https://fdrms.visiontek.co.in/

asp.net iis ssl-certificate

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