小编Kor*_*tak的帖子

关闭应用程序会停止所有活动的BackgroundWorkers吗?

简单的问题,重复标题:

关闭WinForms应用程序是否会停止所有活动的BackgroundWorkers?

c# backgroundworker winforms

11
推荐指数
3
解决办法
2609
查看次数

如何使div高度填充可用空间

我有一个3列布局,列下面有一些细节.

在此输入图像描述

您会注意到其中一列的高度大于其他列的高度.我希望其他两个div自动填充剩余的空间(直到蓝色div).文本将动态加载,因此我需要使用它来处理任何更大的列(以及任意数量).

这可以用HTML/CSS完成,还是必须使用一些JavaScript?


HTML代码(相关部分):

<div id="content">

    <div id="iconsHolder">

        <div id="info">
            <div id="info_content">
                <p><?php echo img('images/man.png'); ?></p>
                <h2>Some guy over here</h2>
                <p class="light justify">It doesn't matter what is being said at the moment. Nothing is said here.</p>
            </div>
        </div>

        <div id="comp">
            <div id="comp_content">
                <p><?php echo img('images/computer.png'); ?></p>
                <h2>Computer Development</h2>
                <p class="light justify">Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit... Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
        </div> …
Run Code Online (Sandbox Code Playgroud)

html css height fill

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

RIA/EF4实体属性映射到NOT NULL nvarchar - 空字符串

背景:

  • 实体框架4
  • Silverlight 4
  • RIA服务
  • MSSQL Server 2008

我有一个具有名为Description的String属性的实体.

在数据库中,它映射到NOT NULL NVARCHAR(200).

问题:

当我尝试插入该实体的新行时,这就是我所做的:

MyExampleEntity entity = new MyExampleEntity()
{
    Name = "example",
    Description = ""        // NOTE THIS LINE!
};

DatabaseContext db = new DatabaseContext();
db.MyExampleEntities.Add(entity);
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

然而,这引起了例外 "The Description field is required."

题:

"空字符串"不应该只是 - 一个字符为零的字符串吗?

我认为只Description = null应视为没有价值.

  • 为什么我的字符串有一个值(虽然它的长度为0),被认为是我省略了值?
  • 这种转换发生在什么程度?在RIA上,在EF上还是在MSSQL中?
  • 当我设置Description to ""并且Description = null(没有值)时导致异常时,有没有办法使描述具有零长度值?

string silverlight ria entity-framework

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

测量多线程环境中的执行时间

我有一个使用Task(TPL)对象进行异步执行的应用程序.

主线程等待触发器(某些TCP数据包),然后执行多个任务.我想要做的是衡量在任务中花费的时间.

看看代码.我有一些冗长的操作(Generator),包含在Stopwatch's开始/停止.

Task.Factory.StartNew((t) => {

    Stopwatch sw = new Stopwatch();
    sw.Start();

    Generator g = new Generator();
    g.GenerateIntervals(); // lengthy operation

    sw.Stop();
    GlobalStopwatch.Add(sw.Elapsed);
});
Run Code Online (Sandbox Code Playgroud)

这是问题所在.秒表DateTime.UtcNow.Ticks在此时使用,Start()然后再使用Stop().然后它减去这两个以获得经过的时间.

问题是,一些其他线程(在单线程系统中)可以获得一些处理器时间,而Generator(来自代码)正在进行GenerateIntervals()冗长的操作.这意味着秒表记录的经过时间不仅包含Generaor.GenerateIntervals()时间,还包含其他线程在其间工作的时间.

是否有任何简单的方法可以确切知道某些方法花费了多少处理器时间,而不包括由于分时机制而导致的其他线程的执行时间?

c# multithreading time-measurement

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

如何让所有实体访问:EDMX中的内部而不是公共?

我希望我的实体框架模型生成具有internal访问修饰符的实体,而不是public.我在库中使用EF模型,我只想从外部访问一个类(一些控制器).

有没有简单的方法让EF模型生成使用internalmodifer代替public,包括更新时的模型重新生成?

entities entity-framework model public internal

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

树中带有yield return元素顺序的递归

我有一个递归函数,在给定起始根节点的情况下返回所有子树节点.

private IEnumerable<Node> getAllNodesRecursively(Node subnode)
{
    foreach (Node node in subnode.Nodes)
        getAllNodesRecursively(node);

    yield return subnode;
}
Run Code Online (Sandbox Code Playgroud)

对于以下树结构:

A
|
+--B
|
+--C
|  |
|  +--D
|
+--E
Run Code Online (Sandbox Code Playgroud)

当我尝试迭代时:

foreach (Node n in getAllNodesRecursively(a))
{
    Console.WriteLine(n);
}
Run Code Online (Sandbox Code Playgroud)

该函数返回唯一的A值.

我希望使用yield-return和递归,并检索Preorder中的元素(在本例中为A,B,C,D,E).

(如果我把收益率的回报放在foreach之前,那么foreach永远不会发生).

这可能吗?

c# tree recursion yield-return postorder

9
推荐指数
1
解决办法
7267
查看次数

什么是关闭TCP连接的正确方法

我有一个TcpClient对象,它使用其底层NetworkStream.Write()将一些数据发送到服务器.因此,我有:

TcpClient server = new TcpClient(serverName, 50001);

/* ... */

NetworkStream stream = server.GetStream();
Run Code Online (Sandbox Code Playgroud)

现在,按下按钮时,连接应该关闭.什么是关闭连接的正确方法?MSDN文档说关闭TcpClient(使用.Close())实际上并不关闭套接字,只关闭TcpClient资源(这至少是我理解文档的方式).

那么,下一个代码会正确关闭连接吗?

stream.Close();
server.Close();
Run Code Online (Sandbox Code Playgroud)

这是否足够,或者我应该首先检查(以某种方式)是否可以关闭流(或服务器)(如果连接是半开的或某些东西)......

更重要的是,NetworkStream.Close()MSDN文档声明它释放资源(甚至是套接字),因此关闭流可能就足够了,因为我在此之后阻止使用TcpClient.

什么是正确的方法?

c# tcp networkstream

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

在隐式转换中使用字符串常量

请考虑以下代码:

public class TextType {

    public TextType(String text) {
        underlyingString = text;
    }

    public static implicit operator String(TextType text) {
        return text.underlyingString;
    }

    private String underlyingString;
}

TextType text = new TextType("Something");
String str = text; // This is OK.
Run Code Online (Sandbox Code Playgroud)

但是如果可能的话,我希望能够做到以下几点.

TextType textFromStringConstant = "SomeOtherText";
Run Code Online (Sandbox Code Playgroud)

我无法使用TextType隐式运算符重载扩展String类,但有没有办法将文字字符串分配给另一个类(由方法或其他东西处理)?

String是一个引用类型,因此当他们开发C#时,他们显然必须使用某种方式来获取类的字符串文字.我只是希望它不是硬编码的语言.

c# string operators implicit implicit-conversion

8
推荐指数
2
解决办法
764
查看次数

在设计器网格中单独分组我的自定义控件属性

我正在使用用户控件.我已经创建了自己的控件属性.现在我想在设计器网格中分别对自己的属性进行分组.

怎么实现呢?

问候

c# propertygrid user-controls

8
推荐指数
1
解决办法
4507
查看次数

使用Entity Framework 4将大量行插入SQL CE 4.0(性能问题)

我有一个带有几个表的小型SQL CE 4.0数据库,使用Entity Framework 4进行映射.

这是我的代码

foreach (String designation in newItemDesignations)
{
    ParameterData defaultValue = PDM.GetDefaultParameterData(designation);

    // Fill the ItemParameterDBO object with the data
    ItemParameterDBO dbParam = new ItemParameterDBO();
    dbParam.ItemID = dbItem.ID;
    dbParam.Designation = designation;    
    dbParam.High = defaultValue.High;
    dbParam.Low = defaultValue.Low;

    database.ItemParameterDBOes.AddObject(dbParam);
}

database.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

24 times每次newItemDesignations列表包含时,都会发生此代码exactly 525 elements.这总共需要12600行.

整个过程持续509 seconds.我猜这对12600行来说太多了.

我知道我在打电话SaveChanges 24 times.目前,应用程序设计不允许我将所有插入放入单个事务(with SaveChanges).但是,看看单个事务会发生什么.509 / 24 = 21 seconds或者a 40 ms per row. …

c# database insert sql-server-ce entity-framework-4

8
推荐指数
2
解决办法
4543
查看次数