问题列表 - 第43468页

使用Task.Factory.StartNew()后是否需要Wait()?

我在使用C#4.0 Task.Factory.StartNew时看到的几乎所有文档都指出,为了等待Task完成,你需要一个Wait.但我的初步测试表明这是不必要的.其他人可以给我确认吗?我很好奇为什么这么多在线和印刷的参考文献说你应该打电话给Wait.

这是一个简单的控制台应用程序,显示我不需要Wait语句,所以我评论了它.无论我是否注释掉tsk.Wait(),输出都是一样的.

所有情况下的预期产出如下:

Main thread starting.
After running MyTask. The result is True
After running SumIt. The result is 1
Main thread ending.

代码:

class Program
{
    // A trivial method that returns a result and takes no arguments.
    static bool MyTask()
    {
        Thread.Sleep(2000);
        return true;
    }

    // This method returns the summation of a positive integer
    // which is passed to it.
    static int SumIt(object v)
    {
        int x = (int)v;
        int sum = 0;
        for (; x …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing task wait task-parallel-library

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

ALTER DATABASE失败,因为无法将锁定放在数据库上

我需要重新启动数据库,因为某些进程无法正常工作.我的计划是让它脱机并重新上线.

我试图在Sql Server Management Studio 2008中执行此操作:

use master;
go
alter database qcvalues
set single_user
with rollback immediate;
alter database qcvalues
set multi_user;
go
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

Msg 5061, Level 16, State 1, Line 1
ALTER DATABASE failed because a lock could not be placed on database 'qcvalues'. Try again later.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
Msg 5061, Level 16, State 1, Line 4
ALTER DATABASE failed because a lock could not be placed on database …
Run Code Online (Sandbox Code Playgroud)

sql ssms sql-server-2008

124
推荐指数
2
解决办法
18万
查看次数

UIViewController -dealloc在解除模态视图控制器后被调用

我的应用程序中有一个显示UITableView的视图.此视图在nib文件中创建,并具有自定义视图控制器.此视图的UIViewController子类充当UITableView的数据源和委托.

我的UITableView根据我的数据显示几行.然后,最后一行显示不同的文本:"添加另一个...".如果选择了最后一行,我会提供一个模态视图控制器(允许用户添加更多数据).当我关闭模态视图控制器时,我再次看到原始视图(如预期的那样)并且看起来都很好.但是,当我尝试与此视图进行交互时,应用程序崩溃了.

从通过UIViewController(对于UITableView)放置几个NSLog()语句,我已经确定在模式视图被解除后正在调用-dealloc方法.这解释了当我尝试使用该视图执行某些操作时的崩溃.但是,我不知道为什么在这个视图控制器上调用-dealloc.

要解雇模态视图控制器,我有:

[self dismissModalViewController:YES];
Run Code Online (Sandbox Code Playgroud)

作为模态视图控制器的UIViewController中的IBAction方法中的代码.此操作与相应nib文件中的取消按钮相关联.

另外,我对View Controller Programming Guide的理解是,可以从内部解除模态控制器,但使用委托更加健壮.我最初使用的是委托,但是委托代理来简化调试.我只是让代理重新进行仔细检查,使用委托时会出现相同的行为.模态控制器的动作方法调用实现为:

[[self delegate] myModalViewController:self didAddObject:obj];  
Run Code Online (Sandbox Code Playgroud)

父视图控制器中的委托实现是:

[self dismissModalViewController:YES]
Run Code Online (Sandbox Code Playgroud)

如果有人之前已经看过这个,或者对可能发生的事情有什么建议或如何调试这个,我将不胜感激.

iphone uiviewcontroller

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

Prolog中的卡片表示

我正在努力学习Prolog.这是我使用这种语言的第一步.作为练习我想写一些可以识别一些扑克手的程序(同花顺,四种,满屋等).

我正在寻找Prolog的优秀卡片代表.我需要有可能检查一张卡是否比其他卡大,如果卡适合,那么一张.

我已经开始使用代码:

rank(2).
rank(3).
rank(4).
rank(5).
rank(6).
rank(7).
rank(8).
rank(9).
rank(t).
rank(j).
rank(q).
rank(k).
rank(a).

value(2, 2).
value(3, 3).
value(4, 4).
value(5, 5).
value(6, 6).
value(7, 7).
value(8, 8).
value(9, 9).
value(t, 10).
value(j, 11).
value(q, 12).
value(k, 13).
value(a, 14).
%value(a, 1).

suite(d).
suite(h).
suite(c).
suite(s).

rank_bigger(X, Y) :-
               value(X, A),
               value(Y, B),
               A > B.
Run Code Online (Sandbox Code Playgroud)

这样可以检查等级A是否大于例如J.

但我不知道如何代表单卡.此表示应包含卡的等级并且也适合.Ace也存在一些问题,因为Ace排名第14,但也可以是1.

所以我的问题是,如果我想制定以下规则,如何表示卡片:

isStraight(C1, C2, C3, C4, C5) :- 
                                  [...]
Run Code Online (Sandbox Code Playgroud)

要么

isStraightFlush(C1, C2, C3, C4, C5) :- 
                                       [...]
Run Code Online (Sandbox Code Playgroud)

如果你了解语言,我确信这是一个简单的问题,但是用C或python这样的语言"切换"思维并不容易.:-)

poker artificial-intelligence prolog declarative-programming

5
推荐指数
2
解决办法
1656
查看次数

Github:对不相关的小变化分别提出拉动请求?

我只是从贡献者的角度看过Github,所以这里有一个维护者的问题:

当我进行一些无关的更改(比如,改进文档,修复Rakefile,测试并修复一个小错误)时,如果我将它们捆绑到一个拉取请求中,那么维护者是否更容易使用(例如,使用misc-fixes分支三个不相关的提交),或者我应该创建单独的分支,每个分支有一个拉取请求?

我假设一旦我做出一个重大的或可能有争议的变化,最好有一个单独的拉取请求,所以它可以讨论,维护者不必挑选,如果他们想拉我的其他变化.但是,如果更改是次要的,那么支持和反对将多个提交捆绑到misc-fixes分支中的参数是什么?

git github

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

在asp控件中编写一个sql语句

我应该如何在SqlDataSource控件中编写sql语句?

<% String inuser="john";%>
<asp:SqlDataSource ID="SqlDataSource1" 
                   runat="server" 
                   ConnectionString="..." 
                   SelectCommand="select from users where user='<%#inuser%>'??????????????" DeleteCommand="..." InsertCommand="..." 
                   UpdateCommand="...">
</asp:SqlDataSource>
Run Code Online (Sandbox Code Playgroud)

.net c# sql asp.net

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

如何指定大(多行)表?

定义一个大表的最佳选择是什么org-mode(大的,我的意思是每个单元可以有多行)?org-mode的一个特性是它能够导出到HTML或LaTeX(或其他),但在这种情况下,我必须先提交导出格式并用该语言对表进行硬编码(例如,HTML) ?您将使用什么软件来创建主要包含每个单元格中的段落的文本字段的表(例如,您可以将其转换为HTML)?

emacs org-mode

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

jslint.js下载链接

找不到来自http://www.jslint.com/的 jslint.js的下载链接.我已经下载了http://jslint.com/webjslint.js,但它运行不正常任何人都可以给我正确的网址下载吗?

javascript jslint

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

为什么IList <>.Reverse()不像List <>()那样工作.反向

我有问题List<T>.Reverse()Reverse(this IEnumerable<TSource> source).看看代码:

  // Part 1
  List<int> list = new List<int> { 1, 2, 3 };

  foreach (int x in list)
    Console.Write(x);

  Console.WriteLine();

  list.Reverse();

  foreach (int x in list)
    Console.Write(x);

  Console.WriteLine();
  list.Reverse();

  // Part2
  IList<int> ilist = list;

  foreach (int x in list)
    Console.Write(x);      

  Console.WriteLine();

  ilist.Reverse();

  foreach (int x in ilist)
    Console.Write(x);

  Console.WriteLine();

  ilist.Reverse();
Run Code Online (Sandbox Code Playgroud)

我的结果:

123
321
123
123
Run Code Online (Sandbox Code Playgroud)

因为-Part1 Reverse()List<T>.Reverse(),Reverse()-Part2是Reverse(this IEnumerable<TSource> source) 我要List<int>.Reverse()在Part2中执行的IList<int>.我怎么能这样做?

c# methods interface list ambiguity

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

返回实现接口的所有通用列表对象

我试图返回所有实现 IHerd 的 Animal 对象。

有人能给我指出方向吗?

public interface IHerd {
        void Herd();
    }

    public class Dog : Animals, IHerd {
        public void Herd() {
            // Swim method
        }
    }

    public class Animals {
        public void Eat() { }
        public void Poop() { }
    }

    public class Farm {
        public List<Animals> FarmAnimals = new List<Animals>();

        public Animals GetHerders() {
            return FarmAnimals.OfType<IHerd>();
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# interface

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