标签: visual-studio-2015

多线程 - 希望是一项简单的任务

我有一个用C++编码的迭代过程需要很长时间,我正在考虑将我的代码转换为使用多个线程.但我担心它可能非常复杂并且存在锁定和错误的风险.但是我怀疑对于这个特殊的问题它可能是微不足道的,但我想要确认.

我希望我可以使用这里简单的线程代码.

我的程序使用了大量的全局数组和结构.我假设如果其他线程试图同时读取相同的数据,则各个线程不需要关注它们.

我还假设如果一个线程想要通过1.5增加一个全局浮点变量而另一个线程想要减去0.1,那么只要我不关心事件的顺序,那么两个线程都会成功完成它们的任务而不用任何特殊代码(如互斥锁和锁等)和浮动最终会增加1.4.如果我所有的假设都是正确的那么我的任务将很容易 - 请告知.

编辑:只是为了使它绝对清楚 - 浮点数递增/递减的顺序并不重要.只要它的价值最终增加1.4,那么我很高兴.在所有线程完成任务之后才会读取 float的值.

编辑:作为一个更具体的例子,成像我们的任务是找到来自美国不同州的慈善机构的捐款总额.我们可以拥有这样的全球:

float total_donations= 0;
Run Code Online (Sandbox Code Playgroud)

然后我们可以有50个单独的线程,每个线程计算一个名为donations_from_this_state的本地浮点数.并且每个线程将单独执行:

total_donations += donations_from_this_state;
Run Code Online (Sandbox Code Playgroud)

显然,线程执行其任务的顺序对最终结果没有任何影响.

c++ multithreading visual-studio-2015

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

没有WinMain的winapi入口点

所以通过我在网上发现的winapi程序来源,我发现在任何地方都没有WinMain,我想知道是否有可能让winapi程序像这样工作,为什么你认为原来的程序员做了这样的事情,我们有像这样的对话框程序:

 static INT_PTR CALLBACK mainDialogProc(HWND hwnd, UINT msg, WPARAM wParam,
     LPARAM lParam)
{
 switch(msg)
  {
    case WM_INITDIALOG:
   {
    //..............   
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

并且主入口点就像这样而不是void WINAPI WinMain(void);

void WINAPI entryPoint(void)
{
 //........
}
Run Code Online (Sandbox Code Playgroud)

这真的有可能吗?它违背了我迄今为止研究的所有内容......我确信我错过了一些东西......

c++ winapi visual-studio-2015

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

MySQL Visual Studio 2015您已经拥有可用的连接

我对Visual Studio 2013非常有经验,现在我正在升级到VS 2015,并且遇到并向Windows Forms应用程序添加新的数据源.重新创建我的问题非常容易.

这是我的设置:

Visual Studio 2015 Enterprise 2015 Update 3
MySQL for Visual Studio 1.2.6
Connector/Net 6.9.9

注意:根据位于http://dev.mysql.com/doc/visual-studio/en/visual-studio-install.html的支持信息矩阵支持上述配置,我也尝试了其他所有其他配置那里列出的支持软件的排列.

以下是重建问题的方法:

新的C#Windows窗体应用程序
添加新的数据源
数据库
数据集
新连接(连接正常)
保存连接
选择数据库对象
选择任何表格
完成

错误:无法自动生成某些更新命令.数据库返回以下错误:您已经有可用的连接.

感谢任何能够提供我可能做错的线索的人.

c# mysql visual-studio-2015

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

ViewData [“ ReturnUrl”] = returnUrl在控制器的操作方法中有什么用

当我使用Individual User Accounts身份验证创建ASP.NET Core Web项目时,我注意到VS2015创建了AccountController具有许多操作方法的。这些动作方法大多数都包含输入可选参数string returnUrl = null,在这些方法ViewData["ReturnUrl"] = returnUrl;中,如下面的一个示例所示。

问题

  1. ViewData["ReturnUrl"] = returnUrl;在这些操作方法中,此可选输入参数和语句的用途是什么?2.什么时候应该在动作方法中使用它们,什么时候应该避免使用它们?

获取方法

[HttpGet]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
    ViewData["ReturnUrl"] = returnUrl;
    return View();
}
Run Code Online (Sandbox Code Playgroud)

发布方式

[HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc visual-studio-2015 asp.net-core

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

asp.net核心应用程序构建错误 - 拒绝访问路径Apex_POC.exe.config

我正在尝试使用.Net framework 4.6.1构建我的ASP.NET核心1.0应用程序

但我一直在低于错误 -

错误无法使以下项目可运行:Apex_POC(.NETFramework,Version = v4.6.1)原因:访问路径'C:\ perforce\CFA\Apex\POC\Apex_POC\src\Apex_POC\bin\Debug \net461\win7-x64\Apex_POC.exe.config'被拒绝.Apex_POC C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets 262

我验证了路径是否正确,并确保没有任何文件夹/文件处于只读模式.

另外,验证我可以写入此文件.文件的当前内容如下(默认情况下,一切都没有从我这边添加) -

<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

我的环境是VS2015 Professional update3和Windows 7机器.

感谢和问候

维沙尔

c# visual-studio-2015 asp.net-core asp.net-core-1.0

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

Visual Studio 2015标签的颜色已更改

我有一些小问题.我重新安装了我的VS2015,现在当我打开我的旧解决方案时,我得到的颜色比前几天还要多(主题是相同的).

颜色

visual-studio visual-studio-2015

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

在发布配置上使用多线程的Visual Studio C++运行时问题

当我使用配置设置为release(对于x86和x64)进行编译时,我的程序无法完成.为了澄清,没有构建错误或执行错误.

在寻找问题的原因和解决方案之后,我发现程序只会崩溃作为发布版本 - 如何调试?这提出它是一个数组问题.虽然这解决了我的问题,但它给了我一些关于此事的见解(我将这里留给下一个人).

为了进一步混淆,只有当主线程上的子程序的执行时间大于约0ms时才会出现问题.

以下是相关的代码部分:

//  Startup Progress Bar Thread
nPC_Current = 0; // global int
nPC_Max = nPC; // global int (max value nPC_Current will reach)

DWORD myThreadID;
HANDLE progressBarHandle = CreateThread(0, 0, printProgress, &nPC_Current, 0, &myThreadID);

/* Do stuff and time how long it takes (this is what increments nPC_Current) */

//  Wait for Progress Bar Thread to Terminate
WaitForSingleObject(progressBarHandle, INFINITE);
Run Code Online (Sandbox Code Playgroud)

我的程序卡在上面的违规行是最后一个语句,程序等待创建的线程终止:

WaitForSingleObject(progressBarHandle, INFINITE);
Run Code Online (Sandbox Code Playgroud)

以下是进度条功能的代码:

DWORD WINAPI printProgress(LPVOID lpParameter)
{   
    int lastProgressPercent = -1;   // …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading visual-studio-2015

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

为Visual Studio 2015安装程序项目选择目标平台

我在Visual Studio 2015中创建了一个安装程序项目。成功完全构建了该应用程序并安装在我的系统中(我使用的是Windows 10 64位)。但是,当我尝试在32位OS上安装该软件包时,出现了错误消息“此处理器不支持安装软件包”。我已经检查了项目的属性,但是与此没有任何关系。解决方案中的所有项目(我有4个项目)都是通过AnyCPU模式构建的。

当我从中打开配置管理器时,有用于选择其他项目的配置和平台的选项,但是我们不能为安装项目选择平台。我附上了屏幕截图。

在此处输入图片说明

希望有人会指导我创建可以使用Visual Studio 2015在32位和64位操作系统上安装的安装程序包。

.net windows windows-installer visual-studio visual-studio-2015

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

您的计算机错误中缺少DLL

我有一个很棒的项目.

我创建了一个新的独立 .dll项目,其中包含带有一些导出函数的原始项目(将原点.h.cpp文件复制到新项目中).我从原始项目复制了所有lib依赖项和路径到那些库和其他包含文件.它的设置相同.

新程序编译但问题是,当我尝试运行代码时,我得到了错误信息:

The program can't start because xxx.dll is missing from your computer. Try reinstalling the program to fix this problem.

xxx.lib是在Additional dependencies名单及其不是第一个:

Additional Dependencies: aaa.lib; bbb.lib; ccc.lib; xxx.lib, zzz.lib

我想VS发现了前三个,.lib否则我会得到一些错误信息..那么为什么不能找到xxx.lib呢?.lib同一文件夹中的所有文件..

谢谢.

c++ visual-studio visual-studio-2015

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

vs 2015中将解决方案资源管理器切换为编辑器

在解决方案资源管理器和Visual Studio 2015中的任何编辑器之间切换的键盘快捷方式或命令是什么?可以切换吗?

我想在“选项”>“环境”>“键盘”中搜索此命令,并将键盘快捷方式分配给该命令。

编辑:我希望命令立即在解决方案资源管理器和编辑器上的第一个(或以前使用的)选项卡之间切换视图。

c# visual-studio-2015

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