小编McG*_*gle的帖子

在后台线程上运行"async"方法

我正在尝试从普通方法运行"异步"方法:

public string Prop
{
    get { return _prop; }
    set
    {
        _prop = value;
        RaisePropertyChanged();
    }
}

private async Task<string> GetSomething()
{
    return await new Task<string>( () => {
        Thread.Sleep(2000);
        return "hello world";
    });
}

public void Activate()
{
    GetSomething.ContinueWith(task => Prop = task.Result).Start();
    // ^ exception here
}
Run Code Online (Sandbox Code Playgroud)

抛出的异常是:

可能不会在继续任务上调用Start.

无论如何,这是什么意思?如何在后台线程上运行异步方法,将结果发送回UI线程?

编辑

也尝试了Task.Wait,但等待永远不会结束:

public void Activate()
{
    Task.Factory.StartNew<string>( () => {
        var task = GetSomething();
        task.Wait();

        // ^ stuck here

        return task.Result;
    }).ContinueWith(task => {
        Prop …
Run Code Online (Sandbox Code Playgroud)

c# windows-phone async-await windows-phone-7.1

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

部署WPF项目后出现XamlParseException

我一直在尝试部署我的WPF应用程序,我使用安装向导创建了一个安装项目.我添加的唯一项目输出是主要的.在构建并安装程序之后,只要我点击桌面上的exe,我就会弹出一个"我的程序已经停止工作"的弹出窗口,所以我点击Debug the Program并看到

PresentationFramework.dll中发生未处理的"System.Windows.Markup.XamlParseException"类型异常

附加信息:'Set connectionId引发了异常.' 行号"10"和行位置"9".

这个例外并没有指出我要解决什么方向.我的应用中没有任何'connectionId'.

我之前因为我的系统托盘的NotifyIcon而遇到了XAMLParseException,但是通过在我的exe路径中添加图标来解决这个问题.我认为这可能是问题,所以我将图标添加到我的安装项目,以及所有其他项目输出.还是行不通.

我知道这是一个模糊的错误,但任何帮助都会受到赞赏,我的应用程序将无法运行.谢谢!

deployment wpf xamlparseexception

23
推荐指数
2
解决办法
3万
查看次数

如何在C#中获取两个字符串数组之间的差异?

如何使用C#.net比较两个数组字符串?例如:

string[] com1 = { "COM6", "COM7" };
string[] com2 = { "COM6", "COM7","COM8" };
Run Code Online (Sandbox Code Playgroud)

这里com1和com2是Array字符串.结果:COM8.怎么做到这一点?

.net c# linq arrays

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

如何在Ninject中绑定Generic类型的接口

我是Ninject的新手,在我实现通用存储库模式时发现自己陷入困境.我想将依赖关系IRepository <IEntityType>绑定到类ConcreteRepository <EntityType>,其中ConcreteRepository <T>实现IRepository <T>,EntityType实现IEntityType.我试过这个:

kernel.Bind<IRepository<IEntityType>>().To<ConcreteRepository<EntityType>>();
Run Code Online (Sandbox Code Playgroud)

...但是Ninject不会接受它,因为它不知道或不关心EntityType实现IEntityType.我怎样才能绑定这种依赖?

UPDATE

这是我得到的错误:

错误3类型'ICM.Dependency.Repository.ConcreteRepository'不能在泛型类型或方法'Ninject.Syntax.IBindingToSyntax.To()'中用作类型参数'TImplementation'.没有从"ConcreteRepository <EntityType>"到"IRepository <IEntityType>"的隐式引用转换.

我仍然不太明白为什么我的绑定不起作用,但显然我在那里错误地使用泛型.因此,该解决方案与NInject无关.我结束了指定ConcreteRepository以显式连接IEntityType和TEntityType:

public class ConcreteRepository<TInterface, TEntity> : IRepository<TInterface> where TEntity : TInterface { ... }
Run Code Online (Sandbox Code Playgroud)

然后注射可写如下:

kernel.Bind<IRepository<IEntityType>>().To<ConcreteRepository<IEntityType,EntityType>>()
Run Code Online (Sandbox Code Playgroud)

c# generics dependency-injection ninject generic-interface

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

以最强的LIKE命令SQL?

我有以下查询:

SELECT * FROM table_name
WHERE (col_1 LIKE '%$keyword%'
    OR col_2 LIKE '%$keyword%'
    OR col_3 LIKE '%$keyword%')
  AND .... <some optional filters> ... 
Run Code Online (Sandbox Code Playgroud)

是否有基于最相关结果进行排序的策略?

mysql sql database full-text-search

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

如何使内联数组初始化工作,如字典初始化?

为什么可以这样初始化Dictionary<T1,T2>:

var dict = new Dictionary<string,int>() { 
    { "key1", 1 },
    { "key2", 2 }
};
Run Code Online (Sandbox Code Playgroud)

...但是不要以KeyValuePair<T1,T2>完全相同的方式初始化一组对象:

var kvps = new KeyValuePair<string,int>[] {
    { "key1", 1 },
    { "key2", 2 }
};
// compiler error: "Array initializers can only be used in a variable 
// or field initializer.  Try using a new expression instead."
Run Code Online (Sandbox Code Playgroud)

我意识到我可以通过new KeyValuePair<string,int>() { "key1", 1 }为每个项目编写等来使第二个例子工作.但我想知道是否可以使用第一个示例中可能的相同类型的简洁语法.

如果不可能,那么是什么让Dictionary类型如此特别?

c# syntax initialization magic-methods

21
推荐指数
2
解决办法
3442
查看次数

Apache不记录php错误

PHP通过CLI成功将错误记录到/var/log/php_errors.log.

但是apache + php不会记录错误.

[bla@notebook ~]$ apachectl -v
Server version: Apache/2.2.17 (Unix)
Server built:   May 19 2011 03:15:39

[bla@notebook ~]$ php -v
PHP 5.3.6 with Suhosin-Patch (cli) (built: Mar 23 2011 13:28:00) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Run Code Online (Sandbox Code Playgroud)

php.ini我有:

display_errors = On
error_reporting = E_ALL | E_STRICT
log_errors = On
error_log = php_errors.log
Run Code Online (Sandbox Code Playgroud)

httpd.conf中:

ErrorLog "/var/log/httpd/error_log"
Run Code Online (Sandbox Code Playgroud)

权限:

[bla@notebook /]$ ls -la /var/log/httpd/
-rwxrwxr-x 1 root root 133351 21.11.2011 …
Run Code Online (Sandbox Code Playgroud)

php apache logging

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

查询重新索引MySQL数据库的主键

我在MySQL中有一个包含主键列的表.

让我们说:

ID | Value
1  | One
2  | Two
6  | Three
8  | Four
9  | Five
Run Code Online (Sandbox Code Playgroud)

我如何得到它:

ID | Value
1  | One
2  | Two
3  | Three
4  | Four
5  | Five
Run Code Online (Sandbox Code Playgroud)

没有其他表格.只是一个.我只是想让ID成为一个合适的系列.

有什么建议?? 一个查询也许.. :)

mysql sql auto-increment

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

在ASP.NET C#和Razor中的变量中编写HTML代码

我是ASP.NET C#的新手,我遇到了一些问题.

在PHP中,我可以将HTML代码存储在变量中,例如:

$list = "<li>My List</li>";
echo "<ul>{$list}</ul>"; // write <ul><li>My List</li></ul>
Run Code Online (Sandbox Code Playgroud)

我在ASP.NET和Razor中尝试过这个

string List = "<li>My List</li>";
<ul>@List</ul>
Run Code Online (Sandbox Code Playgroud)

但ASP改变了"<"和">" &gt;&lt;..你知道任何解决方案吗?

我有另一个问题,我可以在像PHP这样的引号中插入变量吗?

echo "<ul>{$list}</ul>";
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc razor

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

使AvalonEdit MVVM兼容

我正在尝试在我的WPF应用程序中使Avalon MVVM兼容.从谷歌搜索,我发现AvalonEdit不是MVVM友好的,我需要通过创建一个派生自TextEditor的类然后添加必要的依赖属性来导出AvalonEdit的状态.我担心Herr Grunwald 在这里的回答让我很失落:

如果你真的需要使用MVVM导出编辑器的状态,那么我建议你创建一个派生自TextEditor的类,它添加必要的依赖属性并将它们与AvalonEdit中的实际属性同步.

有没有人有一个例子或有关如何实现这一目标的好建议?

.net c# wpf mvvm avalonedit

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