小编Roy*_*mir的帖子

C#线程不会睡觉?

我有这个代码:

void Main()
{
    System.Timers.Timer t = new System.Timers.Timer (1000);
    t.Enabled=true;
    t.Elapsed+= (sender, args) =>c();
    Console.ReadLine();

}

int h=0;
public void c()
{
    h++;
    new Thread(() => doWork(h)).Start();
}

public void doWork(int h)
{
    Thread.Sleep(3000);
    h.Dump();
}
Run Code Online (Sandbox Code Playgroud)

我想看看如果间隔为1000毫秒且作业过程为3000毫秒会发生什么.

但是我看到了一个奇怪的行为 - 3000毫秒延迟仅在开始时发生!

如何让每次doWork睡眠时间为3000毫秒?

正如你在这里看到的那样,开始时有3秒的延迟,然后每次迭代1秒.

在此输入图像描述

.net c# multithreading

54
推荐指数
4
解决办法
2806
查看次数

Thread.Sleep vs Task.Delay?

我知道Thread.Sleep阻止线程.

Task.Delay也阻止?或者它就像是Timer使用一个线程进行所有回调(当不重叠时)?

(这个问题不包括差异)

c# multithreading .net-4.0 .net-4.5

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

在XDocument中查找元素?

我有一个简单的XML

<AllBands>
  <Band>
    <Beatles ID="1234" started="1962">greatest Band<![CDATA[lalala]]></Beatles>
    <Last>1</Last>
    <Salary>2</Salary>
  </Band>
  <Band>
    <Doors ID="222" started="1968">regular Band<![CDATA[lalala]]></Doors>
    <Last>1</Last>
    <Salary>2</Salary>
  </Band>
</AllBands>
Run Code Online (Sandbox Code Playgroud)

但是,

当我想要到达"门乐队"并更改其ID时:

  using (var stream = new StringReader(result))
            {
                XDocument xmlFile = XDocument.Load(stream);

                var query = from c in xmlFile.Elements("Band")

                            select c;
                             ...
Run Code Online (Sandbox Code Playgroud)

query 没有结果

如果我xmlFile.Elements().Elements("Band")这样写 ,它会找到它.

问题是什么 ?

需要来自Root的完整路径吗?

如果是这样,为什么它没有指定就可以工作AllBands

XDocument导航是否要求我知道所需元素的完整级别结构?

.net c# xml linq-to-xml

49
推荐指数
5
解决办法
13万
查看次数

IIS和静态内容?

根据Ultra-Fast ASP.NET:第3章 - 缓存:

浏览器从服务器检索的文件应尽可能长时间地存储在浏览器的缓存中,以帮助最小化服务器往返.

  • 但IIS如何知道静态内容实际上是什么而不是?

    它只是图像,CSS,JS 而不是 ASPX,ashx ......?

    我在哪里可以看到IIS已经被认为是静态的,什么不是静态的

  • 如何使用<%@ OutputCache标题声明页面(没有location)?是images,CSSJS它里面的源文件被输出缓存具有相同属性的?

  • 作为最佳实践,我应该将未来一年设置为最长到期时间.我应该将其用作网站上所有静态内容的默认值

所以我这样做了:

设置公共HTTP响应标头

但是后来,在按下之后OK,我找不到任何显示我的摘要菜单:我已经把响应标题放到了(在这种情况下:css文件夹).

目前,为了看到该css文件夹已应用响应标头 - 我必须再次转到该css文件夹Http Response Header Set Common Headers 然后我看到它.它不是在web.config中编写的. -->-->-->

但是,如果我为一个文件(Login.aspx例如)执行此操作:我确实在web.config中看到它:

<configuration>
    <location path="Login.aspx">
        <system.webServer>
            <staticContent>
                <clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Fri, 15 …
Run Code Online (Sandbox Code Playgroud)

asp.net iis-7 caching header http

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

像alert()函数一样停止页面执行

当我写时alert('Hello'),页面执行停止并等待批准继续.

我有一个 div设置,使用HTML显示为假警报 - 这div有一个'确定'按钮.

我希望页面停止执行(就像警报一样),直到用户单击"确定".

可能吗 ?

javascript jquery

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

垂直对齐TD中的所有(!)元素?

我有一个简单的table1 TDvertical-align:middle;.这TD包含Image:

<table>
<tr>
    <td>
        <img src='http://static.jsbin.com/images/favicon.png'/>
    </td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

一切都很好,IMG垂直对齐.

但是如果我在该Image之后添加另一个元素(span例如):

  <td>
    <img src='http://static.jsbin.com/images/favicon.png'/>
    <span>aaa</span>
  </td>
Run Code Online (Sandbox Code Playgroud)

结果是:

在此输入图像描述

TD的垂直对齐是否应垂直对齐所有孩子?

我怎样才能使span中心成为中心?

完整的JSBIN

NB

我不想添加另一个TD,也不想使用float填充/边距.IE8 +.

编辑:

期望的结果:

在此输入图像描述

html css vertical-alignment

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

异步编程是否意味着多线程?

让我们谈谈每秒都有setInterval方法的JavaScript代码2.

我还有一个onblur控件的动画事件.

onblur发生(+动画)的情况下,我可能会得到这个setInterval功能.

所以我的问题是:
异步编程是否意味着多线程?(以任何方式?)

我知道Javascript不是一种多线程语言.

所以...?

.net javascript jquery multithreading asynchronous

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

StreamReader和BinaryReader?

双方StreamReaderBinaryReader可以用来从二进制文件中的数据(例如)

二进制读取器:

   using (FileStream fs = File.Open(@"c:\1.bin",FileMode.Open))
            {
                    byte[] data = new BinaryReader(fs).ReadBytes((int)fs.Length);
                    Encoding.getstring....
            }
Run Code Online (Sandbox Code Playgroud)

StreamReader:

  using (FileStream fs = File.Open(@"c:\1.bin",FileMode.Open))
            {
                using (StreamReader sr = new StreamReader(fs,Encoding.UTF8))
                {
                       var myString=sr.ReadToEnd();
                }
            }
Run Code Online (Sandbox Code Playgroud)

有什么区别,什么时候应该使用哪个?

.net c# file streamreader binaryreader

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

$().每个vs $ .each vs for jQuery中的循环?

我不明白为什么会这样.

在这里读到:

第一$.每构成一个单一的函数调用来启动迭代器.

第二个$(foo.vals).each进行三次函数调用以启动迭代器.

  • 第一个是$(),它生成一个新的jQuery包装器集(不确定在此过程中有多少其他函数调用).
  • 然后调用$().每个.
  • 最后它对jQuery.each进行内部调用以启动迭代器.

在你的例子中,差异可以忽略不计.但是,在嵌套使用方案中,您可能会发现性能成为问题.

最后,jQuery Enlightenment中的Cody Lindley不推荐使用$ .each进行大于1000的迭代,因为涉及函数调用.使用法线(var i = 0 ... loop.

所以我用这个jsperf测试了它:

(任务:找到已经检查过内部复选框的Tr,并将该颜色设为tr.)

这是jsbin

但看看jsperf

反对所有人的期望,恰恰相反.(chrome和FF和IE)

在此输入图像描述

使用的人$().each(调用三种方法是最快的等等..

这里发生了什么?

javascript each jquery

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

Task.Yield - 真实用法?

我一直在阅读有关Task.Yield,而且作为一名JavaScript开发,我可以告诉大家,就是它的工作是 完全相同一样setTimeout(function (){...},0);在让主单线程处理又名其他的东西方面:

"不要把所有的力量从时间上释放出来 - 所以其他人也会有一些......"

在js中,它特别适用于长循环.(不要让浏览器冻结......)

但我在这里看到了这个例子:

public static async Task < int > FindSeriesSum(int i1)
{
    int sum = 0;
    for (int i = 0; i < i1; i++)
    {
        sum += i;
        if (i % 1000 == 0) ( after a bulk , release power to main thread)
            await Task.Yield();
    }

    return sum;
}
Run Code Online (Sandbox Code Playgroud)

作为JS程序员,我可以理解他们在这里做了什么.

但作为一名C#程序员,我问自己:为什么不为它开一个任务呢?

 public static async Task < int > FindSeriesSum(int i1)
    {
         //do something.... …
Run Code Online (Sandbox Code Playgroud)

c# multithreading async-await c#-5.0 .net-4.5

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