小编Chr*_*sto的帖子

从运行连续的exe文件中删除闪烁

我有几个.exe文件,我运行如下:

   public void RunCalculator(Calculator calculator)
    {
        var query = Path.Combine(EpiPath, calculator.ExeName + ".exe");

        if (File.Exists(Path.Combine(EpiPath, "ffs.exe")))
        {
            var p = new Process();
            p.StartInfo.FileName = query;
            p.StartInfo.WorkingDirectory = EpiPath;
            p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            p.StartInfo.Arguments = String.Join(" ", calculator.Arguments);
            p.Start();
            p.WaitForExit();
        }
        else throw new InvalidOperationException();
    }
Run Code Online (Sandbox Code Playgroud)

这段代码可以工作,但是exe-s多次运行仍会导致一些闪烁.有没有办法消除闪烁,因为它真的很烦人的用户体验它,因为它发生了几秒钟(有相当多的exe运行).

我尝试使用一个任务在另一个线程上执行它,但由于每个exe依赖于前一个工作(它写入文件),我得到一个IO异常.

似乎exe文件只有在其ProcessPriority设置为Realtime时才有效.

编辑:

关于我最近尝试过的更多细节:正如@Jack Hughes建议我尝试使用后台工作者来解决这个问题:

这是我做的:

我在后台工作器上调用RunWorkerAsync()函数,然后依次调用每个计算器的RunCalculator函数.闪烁仍然存在.

Edit2:我创建了一个详细的存储库,其中包含我运行exe文件的方式,exe文件和Old Fox建议的ProcessHelper类.您可以在README文件中找到有关如何使用存储库的说明.

链接到存储库:https://github.com/interdrift/epiwin-flick

c# windows winapi

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

在C++中平移数字会产生错误的值

如果我做

 int n = 100000;
 long long x = n * n;
Run Code Online (Sandbox Code Playgroud)

然后 x == 1410065408

141006540​​8是2 ^ 31,但我希望x为64位

到底是怎么回事?我正在使用VSC++(默认VS c ++编译器)

c++

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

使用带有Identity for Core的EFCore

在过去的几天里,我一直在与Entity框架Core结合使用Identity系统.在揭示我的问题之前,这里有一些信息:

  1. 实体框架Core不支持延迟加载,这意味着我通过说明要包含的项目来使用预先加载
  2. 为了说明我想要检索的对象的哪些项,我覆盖每个存储库中的方法(检索到的属性现在是常量)
  3. 我正在使用的身份系统配置为:

    services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
    {
        options.Cookies.ApplicationCookie.AutomaticChallenge = false;
    })  .AddUserManager<UserManager>()
        .AddRoleManager<RoleManager>()
        .AddUserStore<UserStore>()
        .AddRoleStore<RoleStore>()
        .AddEntityFrameworkStores<ApplicationDbContext, int>()
        .AddDefaultTokenProviders();
    
    Run Code Online (Sandbox Code Playgroud)

现在问题本身:

我想使用身份系统来生成令牌,获取用户等但我无法对UserManager对象本身进行急切加载,因为它的方法返回Task<ApplicationUser>并且Include()方法本身需要IQueryable(进行急切加载).能够使用预先加载的一般方法是UserManager什么?

.net entity-framework asp.net-identity asp.net-core

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

直接绘图到Excel单元画布

有没有一种方法可以使用VSTO将图像直接绘制到包含Excel单元格的画布上,而无需插入形状?

我已经看到了它的完成,而且我知道我似乎无法找到信息来源。

    Range cell = sheet.Cells[1, 1];

    var border = cell.Borders[XlBordersIndex.xlDiagonalDown];
    border.Weight = XlBorderWeight.xlThin;
    border.LineStyle = XlLineStyle.xlContinuous;
Run Code Online (Sandbox Code Playgroud)

此代码段似乎在单元格的画布内生成了一个图形。我需要访问绘制到的图层。

c# excel vsto

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

取消令牌源示例

我正在做一些异步操作,我想使用CancellationToken来阻止异步任务运行,如果用户例如请求它.为了做到这一点,最好有一个Dictionary,我可以找到正确的Thread来停止正确的操作?我目前正在关注的是:

    public Dictionary<Thread, CancellationToken> CancellationTokenData;
Run Code Online (Sandbox Code Playgroud)

因此,如果用户请求取消操作,如果我没错,它应该表现正常吗?

这样做的最佳做法是什么?

例如,假设用户使用线程{B}在数据库内的集合{A}上执行一些非常长的操作.然后他取消操作并继续使用来自另一个线程的集合{A}的另一个冗长的操作.我应该为当前使用全局变量CancellationToken吗?

c# asynchronous

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

应用程序对象正在关闭异常

我正在使用多个Windows窗体和多个Element宿主对象开发Excel加载项以包含WPF控件.我还有一个调用Web服务的表单.并将结果显示回Excel.

我目前面临的问题是当前:在与插件进行一些交互后(没有找到特定的顺序),我的插件停止正常运行,在PresentationFramework.dll中的某处抛出了无效的操作异常.我无法检查那里运行的代码,因为它是隐藏的.

Exception表示如下:"应用程序对象正在关闭".

可能是什么导致了这个?

它是在用于某些自定义绘图的控件的初始化时抛出的

        InitializeComponent();
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪如下所示:

在System.Windows.Application.GetResourcePackage(Uri packageUri)\ r \n在System.Windows.Application.GetResourceOrContentPart(Uri uri)\ r \n在System.Windows.Application.LoadComponent(对象组件,Uri resourceLocator)\ r \n在D:\ Projects\Common\Depict\Drawing\MoleculeView.xaml中的Drawing.MoleculeView.InitializeComponent()中:在D:\ Projects\Common\Depict \中的Drawing.MoleculeView..ctor()中的第1行\ r \n Drawing\MoleculeView.xaml.cs:第192行\ r \n在DrawingControlWrapper.MultipleDrawingControl.LoadMolecule(分子分子,Point []界限)c:\ Users\Nikolay\Desktop\Addin\DrawingControlWrapper\MultipleDrawingControl.xaml.cs:line 32\r \n在CallSite.Target(Closure,CallSite,MultipleDrawingControl,Object,Point [])\ r \n,位于c:\ Users\Nikolay\Desktop\Addin\LMCExcelFunctions\ThisAddIn.cs:第182行\ r \n在CallSite.Target(Closure,CallSite,Type,Object)\ r \n在LMCExcelFunctions.ThisAddIn.addin_SheetSelectionChange(Object sh,Range target)在c:\ Users\Nikolay\Desktop\Addin\LMCExcelFunctions\ThisAddIn.cs:第93行

XAML看起来像这样:

<UserControl x:Class="Drawing.MoleculeView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <DockPanel x:Name="layout"   HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    </DockPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

c# wpf excel

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

如何在使用 clickonce 发布解决方案时包含来自另一个项目的文件

在部署解决方案时,我发现 clickonce 不会从解决方案中的项目上传某些文件。我试图在“发布”的应用程序文件选项卡中查找文件,但它似乎只包含来自客户端项目的文件,而不包含其他项目。我该如何解决这个问题?它应该类似于向项目添加文件依赖项的能力。文件当前设置为“如果较新则复制”和“内容”。

.net clickonce

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

使用 web api 文档时如何返回 NotFound 结果

如何指示找不到资源并仍然为我的 Web API 2 Web 应用程序获取自动生成的文档?

以这个方法定义为例:

 public JsonResult<CalculatorDescription> GetParameterInfo(string parameterCaption)
Run Code Online (Sandbox Code Playgroud)

如果我使用这个定义,我将无法返回NotFound(),但如果我将返回类型更改为IHttpActionResult(为了能够返回NotFound()),我将无法获得返回类型的自动生成信息。

编辑:请注意,我使用的是https://msdn.microsoft.com/en-us/library/dn337124(v=vs.118).aspx JsonResult 而不是MVC ( https://msdn.microsoft. com/en-us/library/system.web.mvc.jsonresult(v=vs.118).aspx )

c# web asp.net-web-api

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

如何将 getter 和 setter 添加到 PropertyDeclarationSyntax?

我正在创建一个可以通过 Roslyn 创建属性的工具。我想将 getter 和 setter 添加到PropertyDeclarationSyntax.

我怎样才能做到这一点?

c# roslyn

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

Visual Studio安装程序无法正确启动

我只需要改变我的硬盘.所以我在我的计算机上安装了一个版本的Windows 10 Education,现在我正在尝试安装Visual Studio 2017社区/企业(尝试过两者).运行从官方网站下载的安装程序后,它没有开始安装,我只看到一个小窗口弹出一小段时间然后它立即关闭.这种行为可能是什么原因以及如何解决这个问题?

编辑:我可以安装其他软件,我设法安装了一些其他程序没有问题,我注意到这种行为只有Visual Studio和.NET Framework安装程序.

Edit2:我在我的临时文件夹中找到了这个:

[4/20/2017,11:30:37] ===伐木开始时间:2017/04/20 11:30:37 === [4/20/2017,11:30:37] [4/20/2017,11:30:38] ---日志级别:标准--- [4/20/2017,11:30:38]目录'C:\ Users\2D94~1\AppData\Local\Temp\931f7233a5c56697278d79b1\'已被选中用于文件提取[4/20/2017,11:30:38]将文件解压缩到:C:\ Users\2D94~1\AppData\Local\Temp\931f7233a5c56697278d79b1\[4/2017/2017,11: 30:38]错误0x8007002a:无法从包装盒#0中提取所有文件.[4/20/2017,11:30:38]错误0x8007002a:无法解压[4/20/2017,11:30:38]错误0x8007013d:无法从错误中获取错误字符串:0x8007002a [4/20/2017 ,11:30:38]整个Box执行退出,结果代码为:0x8007002a [4/20/2017,11:30:38]启动提取的应用程序退出,结果代码为:0x0 [4/20/2017,11:30: 38] ===伐木停止:2017/04/20 11:30:38 ===

编辑3:感谢MICROSOFT你真的搞砸了我吧.

编辑4:完全Windows重新安装后,最新版本仍然出现此错误.

编辑5:将Windows版本从教育更改为专业,它的工作原理!

visual-studio visual-studio-2017

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