小编Art*_*dod的帖子

SqlConnection vs Sql Session.他们的生命一致吗?

我想为我的c#应用程序中的某些进程应用一些sql-session级别设置.

例如,我想DEADLOCK_PRIORITY为一些后台进程设置LOW.

问题是:

  1. 如果我打开一个新的SQL连接,那会启动一个新的sql-session吗?

  2. sql-session会一直存在,直到连接关闭?如果我在SqlConnection打开后立即应用我的设置,它们是否对在相同的情况下执行的所有查询有效SqlConnection

  3. 连接池怎么样?这可能是我的SET DEADLOCK_PRIORITY LOW设置将被我的系统中的其他进程(我不想要)重用,因为SqlConnection实际上并没有关闭(asp.net连接池决定重用它).

谢谢!

c# sql sql-server asp.net connection-pooling

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

如果字段的顺序不同,为什么编译器会为匿名类型生成不同的类

我考虑了2个案例:

var a = new { a = 5 };
var b = new { a = 6 };
Console.WriteLine(a.GetType() == b.GetType()); // True
Run Code Online (Sandbox Code Playgroud)

Ideone:http://ideone.com/F8QwHY

和:

var a = new { a = 5, b = 7 };
var b = new { b = 7, a = 6 };
Console.WriteLine(a.GetType() == b.GetType()); // False
Run Code Online (Sandbox Code Playgroud)

Ideone:http://ideone.com/hDTcxX

问题是为什么字段顺序实际上很重要?

有没有任何理由,或仅仅因为它(如设计).

如果原因只是匿名类型不应该以这种方式使用而你不应该诉诸GetType,那么为什么编译器在第一种情况下重用一个类而不只是为每个anonymus类型声明生成一个新类?

.net c# anonymous-types

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

将未定义的参数传递给函数 - 检查变量是否存在

考虑以下Javascript:

function getType(obj){
    return(typeof(obj))
}
alert(typeof(obj))  //alerts "undefined" correctly
alert(getType(obj))   //throws an error: ReferenceError: obj is not defined
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?有没有解决方法?我正在尝试编写一个函数来检查变量是否存在.

javascript

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

CSS 响应式网格 1px 间隙问题

我正在为一个项目开发一个响应式网格系统。网格由向左浮动且宽度25% 的块组成

这些块内是设置为100% *高度/宽度* 或50% *高度/宽度* 的图像。

块内的所有图像彼此相邻,并且所有块彼此相邻,因此看起来像一个无缝的图像网格。

我遇到的问题是在某些浏览器大小时,或者当您调整浏览器大小时,某些块之间会出现 1px 的小间隙。

一个例子可以在这里看到:http : //dahliacreative.com/responsivegrid/

我认为这可能取决于漂浮的块,好像你把漂浮物取下来似乎一切都很好。我尝试使用display: inline-block等,但无法得到任何工作!

有没有人有解决这个问题的想法?

css grid-layout responsive-design

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

SQL Server Profiler中的死锁图显示相同群集密钥上的相互锁定

我试图使用SQL Server Profiler确定死锁的原因.这是死锁图: 死锁图 这两个语句都是插入,后面跟着select scope_identity(); 实际上有两个并发进程,它们在一个循环中重复执行insert-select_identity.

我期望插入聚簇索引进行独占锁定,并且select获取非聚集索引的共享锁,然后它们等待彼此释放它们各自的indeces.

我看到的是两个进程都在等待释放相同的资源 - 聚集索引.怎么会这样?特定的追索权应属于一个过程或另一个过程.我在这里想念什么?感谢所有提前.

编辑:是的,隔离级别是Serializible.PS:可能,我对非聚集索引的共享锁的假设是错误的,只要我的select不包含where语句

Edit2:这是xml的一部分:

 <resource-list>
   <keylock hobtid="72057594148028416" dbid="29" objectname="<confidential>" indexname="PK_WP_Inbound_StockTransactionLine" id="lock9641700" mode="RangeS-S" associatedObjectId="72057594148028416">
    <owner-list>
     <owner id="process8e09288" mode="RangeS-S"/>
    </owner-list>
    <waiter-list>
     <waiter id="process991ce08" mode="RangeI-N" requestType="convert"/>
    </waiter-list>
   </keylock>
   <keylock hobtid="72057594148028416" dbid="29" objectname="<confidential>" indexname="PK_WP_Inbound_StockTransactionLine" id="lock9641700" mode="RangeS-S" associatedObjectId="72057594148028416">
    <owner-list>
     <owner id="process991ce08" mode="RangeS-S"/>
    </owner-list>
    <waiter-list>
     <waiter id="process8e09288" mode="RangeI-N" requestType="convert"/>
    </waiter-list>
   </keylock>
  </resource-list>
Run Code Online (Sandbox Code Playgroud)

根据这个,我认为它是由SERIALIZABLE隔离引起的范围扫描(谷歌搜索).但是,我仍然不明白这是怎么发生的,建议的补救措施是什么.

sql-server indexing deadlock sql-server-profiler

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

Threadstatic懒惰

我很好奇以下示例代码是否是线程安全的:

public class Test
{
    [ThreadStatic]
    private static Foo current;

    public static Foo GetFoo()
    {
        return current ?? (current = new Foo());
    }
}

public class Foo
{
}
Run Code Online (Sandbox Code Playgroud)

通常情况下,我会使用Lazy<T>,但由于每个单独的线程有一个单独的变量,该属性本质上应该是线程安全的,这是正确的吗?

谢谢.

c# multithreading

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

启用EnabledEventValidation时,Firefox中的ViewState错误无效

我有一个稳定的错误,每次击中F5时都会重现: 错误

有两个网格(主 - 细节),当主网格上发生聚焦行更改事件时,我的客户端代码引发的回调实际上发生了错误.像这样的东西:

    this.mainGrid.ClientSideEvents.FocusedRowChanged = string.Format(@"
                function(s, e) 
                {{
                        if (typeof({0}) != 'undefined')
                            {0}.PerformCallback(s.GetFocusedRowIndex());
                }}",
                this.detailsGrid.ClientInstanceName);
Run Code Online (Sandbox Code Playgroud)

这个bug只能在mozilla firefox中重现!(是的,IE没有问题,这有点奇怪=))

非常重要的是:只有当事件验证开启时,bug才会重现,即:

... EnableEventValidation="false" %>   // no error in this case
Run Code Online (Sandbox Code Playgroud)

我建议原因是在必要的字段加载之前回调被触发(因为我得到它,事件验证使用一些隐藏的字段),所以我检查了使用setTimeout:

this.mainGrid.ClientSideEvents.FocusedRowChanged = string.Format(@"
            function(s, e) 
            {{
                window.setTimeout(function () {{
                    if (typeof({0}) != 'undefined') {0}.PerformCallback(s.GetFocusedRowIndex());
                }}, 2000);
            }}",
            this.detailsGrid.ClientInstanceName);
Run Code Online (Sandbox Code Playgroud)

但是tat并没有帮助.2秒后,回叫开始,我收到错误.它仅在刷新时发生 - 第一次加载页面时不会引发错误.禁用网格的行缓存也没有帮助.需要帮助!=))

编辑:这是StackTrace

   at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
   at System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded()
   at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)
   at System.Web.UI.Control.ValidateEvent(String …
Run Code Online (Sandbox Code Playgroud)

asp.net viewstate firefox eventvalidation

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

ReactJS组件:鼠标输入/鼠标离开时fadeIn/fadeOut

我已经创建了一个简单的组件reactjs(一种值选择器:plunker)

现在,我希望控件的上部和下部隐藏(opacity=0),并opacity=1在用户使用鼠标悬停中央div(.range-picker-selection)时动画显示.

因为我无法DOM直接使用我的组件的功能(reactjs不鼓励这个),我想我应该改变状态(类似的东西state.expanded = true)并依靠reactjs反映变化.

但是我怎样才能实现动画效果呢?
使用jQuery我会使用element.animate({opacity:0})但现在我无法访问DOM

javascript css events reactjs

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

格式为“ddd”的 DateTime.TryParseExact 在除当前日期之外的所有日期均失败

我遇到了一个奇怪的问题。现在是星期三,并且:

DateTime date;
DateTime.TryParseExact(
   "Wed", "ddd", null, System.Globalization.DateTimeStyles.None, out date); // true

DateTime.TryParseExact(
   "Mon", "ddd", null, System.Globalization.DateTimeStyles.None, out date); // false
Run Code Online (Sandbox Code Playgroud)

当我将计算机上的本地日期更改为星期一时,输出交换为“假-真”。

为什么解析器依赖于当前日期?

c# datetime date

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

为什么快照隔离级别下的事务需要S和IX锁?

我正在调查一个死锁,并且在探查器的死锁xml文件中看到进程process5332cf8快照隔离级别(isolationlevel="snapshot (5)")下运行事务。

但是不知何故,它在页面上保持了IX锁,并希望再获取一个。

这可能是什么原因(除了在发生冲突的中间阶段将隔离级别更改为非快照之外)?

我是否缺少有关Snapshot IL的信息?

PS:完整的xml:http : //ideone.com/yuU9td

sql-server deadlock snapshot isolation-level

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

为什么表达式本身在方法参数中的存在使得C#中的方法变慢

请考虑方法:

    private void FastMethod(string param)
    {
    }

    private void SlowMethod<T>(Expression<Func<T>> expression)
    {
    }
Run Code Online (Sandbox Code Playgroud)

并进行以下测试:

    [TestMethod]
    public void Test()
    {
        var stopwatch = new Stopwatch();
        stopwatch.Start();
        for (int i = 0; i < 1000000; i++)
        {
            this.FastMethod("TestContext");
        }

        TestContext.WriteLine("Fast time: " + stopwatch.ElapsedMilliseconds);
        stopwatch.Restart();

        for (int i = 0; i < 1000000; i++)
        {
            this.SlowMethod(() => this.TestContext);
        }

        TestContext.WriteLine("Slow time: " + stopwatch.ElapsedMilliseconds);
    }
Run Code Online (Sandbox Code Playgroud)

输出是:

快速时间:4

慢时间:2249

http://i.imgur.com/eYcBfZX.png

我知道这是每100万个电话,所以这看起来可能不是一个严重的性能问题.

但是我希望有一些基于属性设置器中的表达式的逻辑,它们将会经常调用+我只是好奇.

这里有优化空间吗?(我无法摆脱Expression方法参数,基本上我需要做一些语法树解析.有趣的是解析本身足够快).

c# performance lambda expression compiler-optimization

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