小编Tal*_*Guy的帖子

在GPU上运行C#代码

我不了解GPU编程概念和API.我有几个问题:

  1. 是否可以编写一段托管的C#代码并将其编译/转换为某种模块,可以在GPU上执行?或者我注定要有两个实现,一个用于CPU管理,一个用于GPU(我知道GPU上可以执行的操作会有限制)?
  2. 是否存在适当且成熟的API以针对各种GPU硬件供应商(即通用API)进行独立编程?
  3. 如果想要开发在CPU上运行的应用程序(使用托管语言编写),并且如果存在合适的GPU硬件,还提供速度优化,是否有任何最佳实践?

我也很高兴能够通过适当的学习资源链接到任何类型的文档.

最好的,约瑟夫

c# gpu gpu-programming

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

如何让SQL Server Management Studio停止处理错误?

这似乎是一个令人难以置信的愚蠢问题,但是如何让SQL Server Management Studio在遇到错误时停止处理SQL脚本?

我有一个很长的脚本,如果在开始SSMS报告时出现错误,然后盲目地继续,搞砸了更多的东西.我无法使用事务,因为脚本会创建多个数据库,但无法进入事务.数据库创建有时会失败.

SQL Server的Toad将在遇到的第一个错误时暂停,并询问您是要停止还是继续.这是我正在寻找的行为.SSMS中是否存在?

不是问,"我如何编写或修改脚本,以便它在错误时停止?" 我没有兴趣修改我的脚本来实现这一点,我只是希望SSMS 停止出错.SQL Server的Toad 正是这样做的,这就是我想要的行为.这也不是659188的副本,因为这与修改脚本以停止SSMS有关.

sql-server ssms

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

如何在另一个内部使用存储过程的结果?

我有一个存储过程,我想从另一个内部调用,然后循环结果.有点像使用带有存储过程的游标而不是SQL select语句.我无法弄明白该怎么做.

我可以像这样得到整个结果:

DECLARE @result int;
EXEC @result = sp_who;
PRINT @result;
Run Code Online (Sandbox Code Playgroud)

有趣的是,这似乎将@result的类型改为int以外的东西,但无论如何.然后,我如何逐行循环结果?如何访问各列的数据?例如,我如何杀死第四列(loginname)就像'%gatesb'或其他什么的进程?

sql sql-server stored-procedures

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

无论.NET中的时区如何,如何获得FAT32文件的正确修改日期时间?

请仔细阅读这个问题完全并认真回答了.答案并不像看起来那么简单.

我正在编写一个程序,需要跟踪文件的修改日期时间,其中一些存储在外部FAT32驱动器上.该程序正在各种Windows 7计算机上运行.

问题是当前UTC偏移更改时UTC修改的日期时间更改.具体来说,当我们从新西兰标准时间(UTC + 12)到新西兰夏令时(UTC + 13)再返回时.这不是一个错字 - UTC修改日期时间的变化.它不应该,这是UTC的一点,但确实如此.这似乎是FAT32文件系统的限制 - NTFS上的文件工作正常.

Console.WriteLine(DateTime.Now.ToString() + (DateTime.Now.IsDaylightSavingTime() ? " Daylight" : " Standard"));
Console.WriteLine(new FileInfo(args[0]).LastWriteTimeUtc.ToString("yyyyMMdd HH mmss"));
Run Code Online (Sandbox Code Playgroud)

系统时区为新西兰,系统日期为2012年4月9日,即新西兰标准时间.

C:\Dev\UtcModifiedDatetime\bin\Debug>UtcModifiedDatetime.exe M:\Test1\Test.txt
2012-04-09 3:53:46 pm Standard
20120409 03 5316
Run Code Online (Sandbox Code Playgroud)

现在将系统日期设置为2012年3月1日,即新西兰夏令时.请注意,我已重命名包含测试文件的目录.这很重要,否则Windows将缓存文件的修改日期时间.在我弄明白之前,我浪费了很多时间.

C:\Dev\UtcModifiedDatetime\bin\Debug>UtcModifiedDatetime.exe M:\Test2\Test.txt
2012-03-01 3:54:13 pm Daylight
20120409 02 5316
Run Code Online (Sandbox Code Playgroud)

现在将系统日期设置回2012年4月9日,并将时区更改为阿德莱德(UTC + 09:30).

C:\Dev\UtcModifiedDatetime\bin\Debug>UtcModifiedDatetime.exe M:\Test3\Test.txt
2012-04-09 1:27:21 pm Standard
20120409 06 2316
Run Code Online (Sandbox Code Playgroud)

那么如何才能获得正确的修改日期时间?我可以尝试找出文件是否在FAT32文件系统上,如果它是夏令时调整一小时,但即使我可以让它工作,这将是一个可怕的丑陋黑客.将使用低级系统调用工作(我怀疑不是因为问题似乎是在操作系统级别)?我可以在不更改整个机器的情况下更改过程的时区吗?还有其他方法吗?

.net c# timezone utc

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

ASP.NET页面事件 - 在GridView绑定之后发生按钮单击事件

我对页面事件顺序的理解是这样的:

页面:加载

控件:DataBind(用于GridView或其他)

控制:加载

控制:单击(按钮)

页面:PreRender

控制:PreRender

(还有很多其他的 - 但这些是我感兴趣的)

这里要注意的重要一点是按钮的click事件发生 gridview的bind事件之后.如果按钮导致数据更改,GridView将显示旧数据.我可以在PreRender事件中重新绑定控件,但这看起来非常难看.

这必须是一个非常常见的模式(一个更新数据的按钮).如何将这些放在一起,以便在Button单击更改 GridView绑定到数据?

asp.net data-binding events page-lifecycle

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

如何在Visual Studio中运行单元测试后播放声音

当我在我的本地机器上进行开发时,我希望Visual Studio在我进行单元测试时发出愉快的声音,当一个人失败时他们会传递一个悲伤的声音,而当一个人失败时他们会感到伤心.我该怎么做呢?

我假设我需要编写一个宏,但我找不到任何与单元测试相关的环境事件.我正在使用Visual Studio 2010,但对于大多数或所有版本的Visual Studio都有一个通用的解决方案.

unit-testing visual-studio

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

如何在 ASP.NET MVC 的 RegisterGlobalFilters 方法中进行依赖注入

我对使用 IOC 容器还是有点陌生​​,而且我有点挣扎。我将 ASP.NET MVC 5.2 与 Ninject.MVC3 一起使用。我有一个基本上交给日志服务的异常过滤器:

public class ExceptionLoggerFilter : IExceptionFilter
{
    private readonly ILogService _logService;

    public ExceptionLoggerFilter(ILogService logService) {
        _logService = logService;
    }

    public void OnException(ExceptionContext filterContext) {
        _logService.LogError(filterContext.Exception);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想使用依赖注入来获取日志服务的实例。但是,RegisterGlobalFilters 方法是静态的:

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new ExceptionLoggerFilter(???));
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以为 FilterConfig 使用静态构造函数,但这并不是一个好的解决方案。

我尝试在 ExceptionLoggerFilter 类中使用属​​性注入,但它不起作用(LogService 始终为 null):

[Inject]
public ILogService LogService { get; set; }
Run Code Online (Sandbox Code Playgroud)

我已经阅读了使用 Factory 模式的内容,但它在这里似乎没有帮助,因为我仍然需要将 Factory 类注入到 FilterConfig 类的静态构造函数中。我可能是错的,但这也不是正确的解决方案。

现在,我使用的是 just-give-me-an-instance 方法:

var logService = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc dependency-injection ninject ioc-container

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

无法获取对ConfigurationManager的引用

我根本无法让Visual Studio 2005找到System.Configuration.ConfigurationManager类.这是代码:

using System.Configuration;

...

x = ConfigurationSettings.AppSettings["MySetting"]
// The name 'ConfigurationManager' does not exist in the current context

x = System.Configuration.ConfigurationManager.AppSettings["MySetting"]
// The type or namespace name 'ConfigurationManager' does not exist in the
// namespace 'System.Configuration' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

我绝对,积极有一个参考System.Configuration项目,它肯定是在正确的项目.DLL版本为2.0.0.0,运行时版本为2.0.50727 - 与其他版本完全相同.我试过删除引用并重新添加它.奇怪的是,当它显示在项目的References'文件夹'中时,它显示为'System.configuration' - 带有小写'c'.

Visual Studio可以找到System.Configuration.ConfigurationSettings类,除了它已过时的警告之外没有任何问题.该项目是一个Web项目,代码位于WebControl的代码隐藏中.

有什么想法在这里发生了什么?

.net configurationmanager visual-studio-2005

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

究竟是什么触发 Blazor 组件重绘自身?

我有 Blazor WebAssembly 应用程序。我有一个共享模型类的父组件和子组件。当孩子更新模型上的值时,孩子会重绘自己,但父母不会。那么究竟什么触发了 Blazor 组件重绘自身呢?我找不到有关 Blazor 特定方面的任何文档。

我有一个 POCO 模型类。在实际应用中,这来自一个单独的程序集。模型/AwesomenessModel.cs:

namespace BlazorApp.Models {
    public class AwesomenessModel {
        public int? Level { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的索引页。页面/Index.razor:

@page "/"

@using BlazorApp.Components
@using BlazorApp.Models

<Awesomeness AwesomenessModel="@AwesomenessModel"></Awesomeness>

@code {
    private AwesomenessModel AwesomenessModel = new AwesomenessModel();
}
Run Code Online (Sandbox Code Playgroud)

父类。我添加了一个重绘按钮来验证内容是否应该已更改。组件/Awesomeness.razor:

@using BlazorApp.Models

@if (AwesomenessModel.Level.HasValue) {
    <div>Awesomeness is @AwesomenessModel.Level.Value</div>
} else {
    for (int i = 0; i < 10; i++) {
        <AwesomenessSelector AwesomenessModel="@AwesomenessModel" Level="@i"></AwesomenessSelector>
    }
}
<div><button class="btn btn-link" @onclick="RedrawClick">Redraw</button></div>

@code { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc blazor blazor-client-side

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

Blazor WebAssembly:如何在长时间运行的非异步进程中更新 UI

我有一些复杂的计算需要一段时间才能完成。(是的,我知道,客户端听起来可能不是执行它们的理想场所,但有充分的理由。)我希望页面随着计算的进行而更新结果。随着计算的进行,我可以让 UI 重新渲染,但不能正确更新结果。

请注意,计算本身并不是异步的,将它们包装起来Task.Run似乎没有帮助。这是演示问题的代码的简化版本:

@page "/AsyncTest"

<button type="button" class="btn btn-primary" @onclick="@(e => RunOnClick(e))">Run</button>
<br />
<div>Percent Complete = @PercentComplete %</div>

@code {
    private int PercentComplete = 0;

    private async Task RunOnClick(MouseEventArgs e) {
        for (PercentComplete = 0; PercentComplete < 100; PercentComplete += 20) {
            System.Console.WriteLine($"LongCalculation: PercentComplete = {PercentComplete}");

            await Task.Run(() => Calculation()); // Does not work.
            //await CalculationAsync();          // This works.

            StateHasChanged();
        }
    }

    private void Calculation() => System.Threading.Thread.Sleep(500);
    private async Task CalculationAsync() => await Task.Delay(500); …
Run Code Online (Sandbox Code Playgroud)

async-await blazor blazor-client-side

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

如何在哈希中引用数组中的Perl哈希?

这是我正在使用的代码片段:

my %photo_details = (
 'black_cat' => (
  ('size' => '1600x1200', 'position' => -25),
  ('size' => '1280x1024', 'position' =>  25),
  ('size' =>   '800x600', 'position' =>   0),
 ),
 'race_car' => (
  ('size' => '1600x1200', 'position' =>  10),
  ('size' =>   '800x600', 'position' =>   5),
 ),
);

my $photo = 'black_cat';

foreach my $photo_detail ($photo_details{$photo})
{
 my $size     = $photo_detail{'size'};
 my $position = $photo_detail{'position'};

 print ("size = $size, position = $position\n");
}
Run Code Online (Sandbox Code Playgroud)

我期待得到的是:

size = 1600x1200,po​​sition = -25

size = 1280x1024,position = 25 …

arrays perl hash reference perl-data-structures

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