小编Tim*_*ora的帖子

是否有可能等待事件而不是另一个异步方法?

在我的C#/ XAML metro应用程序中,有一个启动长时间运行过程的按钮.所以,按照建议,我使用async/await来确保UI线程不被阻止:

private async void Button_Click_1(object sender, RoutedEventArgs e) 
{
     await GetResults();
}

private async Task GetResults()
{ 
     // Do lot of complex stuff that takes a long time
     // (e.g. contact some web services)
  ...
}
Run Code Online (Sandbox Code Playgroud)

偶尔,GetResults内发生的事情需要额外的用户输入才能继续.为简单起见,假设用户只需单击"继续"按钮即可.

我的问题是:如何以等待点击另一个按钮等事件的方式暂停GetResults的执行?

这是实现我正在寻找的东西的一种丑陋方式:"继续"按钮的事件处理程序设置了一个标志......

private bool _continue = false;
private void buttonContinue_Click(object sender, RoutedEventArgs e)
{
    _continue = true;
}
Run Code Online (Sandbox Code Playgroud)

...和GetResults定期轮询它:

 buttonContinue.Visibility = Visibility.Visible;
 while (!_continue) await Task.Delay(100);  // poll _continue every 100ms
 buttonContinue.Visibility = Visibility.Collapsed;
Run Code Online (Sandbox Code Playgroud)

民意调查显然非常糟糕(忙碌的等待/浪费周期),我正在寻找基于事件的东西.

有任何想法吗?

顺便说一下,在这个简化的例子中,一个解决方案当然是将GetResults()分成两部分,从开始按钮调用第一部分,从继续按钮调用第二部分.实际上,GetResults中发生的事情更复杂,并且在执行中的不同点可能需要不同类型的用户输入.因此,将逻辑分解为多种方法将是非常重要的.

c# async-await microsoft-metro .net-4.5 windows-store-apps

146
推荐指数
5
解决办法
6万
查看次数

最好的动态JavaScript/JQuery Grid

我正在使用JavaScript,JQuery和HTML.UI我的项目完全是动态的.我正在寻找一个支持以下功能的动态JavaScript/JQuery Grid.

任何人都可以告诉我有什么好看的开源Grid支持以下功能吗?

  1. 我应该能够在运行时创建一个网格实例并添加到DOM.
  2. 支持列模板(文本框,选择,复选框或任何输入或简单文本)
  3. 支持设置新列模板或实时替换现有列模板.
  4. 可以启用列下存在的输入控件(例如,文本框,复选框..),并且可以禁用很少的输入控件.
  5. 实时支持setData().
  6. 如果用户更改了任何输入数据,则支持事件.
  7. 它应该支持选择一行
  8. 实时添加行或删除行支持而不渲染整个网格.
  9. 支持分页.
  10. 支持按任何列实时排序.
  11. 如果用户实时对数据进行排序,则触发事件.
  12. 网格UI必须支持可实现的列
  13. 自动调整大小(如果网格根据父元素的大小自动调整大小,那将会很棒)
  14. 绝对有很好的文档.

javascript grid jquery

87
推荐指数
4
解决办法
14万
查看次数

读取由另一个应用程序锁定的文本文件的最简单方法

我一直在使用File.ReadAllText来获取一些csv,但每次忘记在Excel中关闭文件时,应用程序都会抛出异常,因为它无法访问该文件.

(对我来说似乎很疯狂,我的意思是ReadAllText中的READ似乎很清楚)

我知道File.Open有所有的花里胡哨,但有没有'中间'方法,不涉及到缓冲区和字符串数组?

是的,我很懒,所以投我一票,先给我答案:)

c# filestream text-files

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

如何在chrome的noscript标签中显示html?

当我noscript在Chrome中查看时,我看到JavaScript关闭时会显示原始html.

这个:

<!DOCTYPE html>
<head></head>
<body>
<noscript>
    <div>No Javscript</div>
</noscript>
</body>
Run Code Online (Sandbox Code Playgroud)

将显示:

<div>No Javscript</div>
Run Code Online (Sandbox Code Playgroud)

这曾经工作,所以我猜测有一个回归,但我在网上找不到任何关于它的东西.在其他浏览器(safari,firefox)中,我没有看到HTML.我在OS X 10.7.5上使用Chrome 26.0.1410.43

html google-chrome noscript

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

如何使用xcopy只复制文件?

我在Visual Studio解决方案中有许多Web应用程序.

所有都有相同的post build命令:

xcopy "$(TargetDir)*.dll" "D:\Project\bin" /i /d /y
Run Code Online (Sandbox Code Playgroud)

避免用旧文件替换较新的文件会很有用(例如,有人可能会意外添加对旧版DLL的引用).

如何使用xcopy仅使用Visual Studio生成的较新DLL文件替换旧文件?

xcopy post-build-event visual-studio

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

在Vim中格式化和缩进HTML

我目前有一个巨大的HTML文件,它没有换行符,只出现在一行中.

我想在vim中格式化它(特别是macvim).我尝试了以下选项,但没有一个对我有用.

  • 选中文本并按下=.这只会自动打算代码.但由于整个代码存在于一行中,因此它不会执行任何操作
  • 我尝试了这个插件http://www.vim.org/scripts/script.php?script_id=3613这种工作,但只会为当前标签插入换行符.我希望格式化整个文件

有没有办法使用插件或其他方式?

谢谢!

html vim formatting macvim

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

我可以将XML文档从接口传播到其实现吗?

我需要将XML文档从基类传播到衍生物或从接口传播到实现.

我可以使用Resharper吗?

resharper xml-documentation visual-studio

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

如何在更新数据库时刷新页面?

如何检测对数据库所做的最新更新,并在发生更改时以静默方式刷新页面?

假设数据库访问如下:

$host = "localhost";
$username = "root";
$password = "root";
$db = mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db('ccr') or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

任何想法和样品将不胜感激.谢谢.

php database refresh

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

动态生成IL中的值类型转换

更新
一年后,我终于意识到了这种行为的原因.本质上,一个对象不能被拆箱到不同的类型(即使该类型转换或转换为目标类型),如果你不知道正确的类型,你必须以某种方式发现它.赋值可能完全有效,但这不可能自动发生.

例如,即使一个字节适合Int64,也不能将一个字节拆分为long.您必须将一个字节取消装箱作为一个字节,然后再将其转换.

如果您没有足够的信息来执行此操作,则必须使用其他方法(如下所示).

表征和身份

原始问题

我正在与IL合作,以提高通常用反射处理的许多任务的性能.为了实现这一点,我正在大量使用这门DynamicMethod课程.

我编写了动态方法来设置对象的属性.这允许开发人员仅基于名称动态设置属性.这适用于将数据库中的记录加载到业务对象等任务.

但是,我坚持一个(可能很简单)的事情:将值类型转换为更小的类型(例如将字节的值放入Int32).

这是我用来创建动态属性设置器的方法.请注意,我删除了除IL生成部分之外的所有内容.

 // An "Entity" is simply a base class for objects which use these dynamic methods.
 // Thus, this dynamic method takes an Entity as an argument and an object value
 DynamicMethod method = new DynamicMethod( string.Empty, null, new Type[] { typeof( Entity ), typeof( object ) } );

ILGenerator il = method.GetILGenerator();    
PropertyInfo pi = entityType.GetProperty( propertyName );
MethodInfo mi = pi.GetSetMethod();

il.Emit( OpCodes.Ldarg_0 ); // push entity …
Run Code Online (Sandbox Code Playgroud)

c# il type-conversion

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

带有col,colgroup,tbody和thead的HTML表标记会在Visual Studio 2010和Visual Studio 2012中引发编译错误

我有一个.NET 3.5网站,其中包含一个包含col,colgroup,tbody和thead标记的表标记.这是具有runat ="server"属性的服务器端标记.此表在Visual Studio 2010中运行良好,但在安装Visual Studio 2012和.NET 4.5之后,此标记现在无法在Visual Studio 2010和Visual Studio 2012中编译.(我尝试了两种.)以下是编译器错误正在抛出:

  • 'System.Web.UI.HtmlControls.HtmlTableRowCollection.Add(System.Web.UI.HtmlControls.HtmlTableRow)'的最佳重载方法匹配有一些无效的参数
  • 参数'1':无法从'System.Web.UI.HtmlControls.HtmlGenericControl'转换为'System.Web.UI.HtmlControls.HtmlTableRow'

这是我正在使用的一个例子:

<table id="TestTable" runat="server">
    <colgroup>
        <col width="30%" />
        <col width="70%" />
    </colgroup>
    <thead>
        <tr>
            <td>Sample header 1</td>
            <td>Sample header 2</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Sample cell 1</td>
            <td>Sample cell 2</td>
        </tr>
        <tr>
            <td>Sample cell 3</td>
            <td>Sample cell 4</td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题,以便我们可以让网站编译并继续工作?

asp.net visual-studio-2010 .net-3.5 .net-4.5 visual-studio-2012

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