小编ose*_*ose的帖子

构造函数可以被抢先一步吗?

是否有可能在C#中抢占构造函数?

例如,考虑代码:

public class A
{
    public bool ready = true;

    public A()
    {
        ready = false; // Point #1
        // Other initialization stuff
        ready = true; // Point #2
    }
}
Run Code Online (Sandbox Code Playgroud)

在代码中的其他地方,两个线程可以访问类型A的变量,第一个线程调用在#1点抢占的构造函数.然后第二个线程测试ready并发现它仍然是真的因此它做了一些坏事.

这种情况可能吗?

进一步来说:

  1. 构造函数可以被抢先一步吗?
  2. 如果是这样,这是否意味着应该有lock构造函数中的同步代码?
  3. 在构造函数退出后,构造的对象是否仅分配给共享变量,从而完全避免了这个问题?

c# multithreading

10
推荐指数
1
解决办法
282
查看次数

将神经网络存储在数据库中的最佳实践

我正在开发一个使用神经网络的应用程序.目前我正在考虑将其置于基于SQL(可能是SQL服务器)或图形数据库的关系数据库中.

从性能的角度来看,神经网络将非常庞大.

我的问题:

  1. 与图形数据库相比,关系数据库在处理神经网络时会遭受性能损失吗?
  2. 什么图形数据库技术最适合处理大型神经网络?
  3. 可以使用PostGIS等地理空间数据库有效地表示神经网络吗?

sql database graph-databases neural-network

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

命名管道提供程序无法打开与SQL Server 1231的连接

我正在尝试设置链接服务器并遇到问题.

在目标服务器上,我配置了一个用户,假设是Q.无论用户在源服务器上登录了什么用户,我都设置了源服务器以连接Q的登录凭据.

但是,当我尝试连接时,我收到错误

"命名管道提供程序:无法打开与SQL Server的连接[1231]."

我尝试在服务器配置管理器中启用和禁用命名管道,但无济于事.

我也看到一些事情说这是一个安全问题.问题是,我可以使用SQL管理工作室中的Q凭据从Target连接到Source.

这里有什么愚蠢的东西吗?

sql sql-server linked-server named-pipes sql-server-2008

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

FlowLayoutPanel没有"换行符"

我试图使用一个FlowLayoutPanel包含任意数量的高UserControls,一个在另一个旁边.当一个新的控件被添加到FlowLayoutPanel,我希望它出现在上一个控件的右侧,而不是在下面.

我订AutoScrolltrueFlowLayoutPanel,并有FlowDirection作为LeftToRight.

下面是"正确"行为的示例(右侧添加了新项目,溢出时出现垂直滚动条): 正确的并排安排

但是,当我超过"行"的末尾时,FlowLayoutPanel将控件放到"新行".所需的行为是出现一个水平滚动条,只有这一行的垂直溢出出现在下面.

这是不正确行为的示例:

行为不正确

如何强制所有对象排成一行(即使用水平滚动条)?

c# user-controls winforms

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