小编Cam*_*ron的帖子

如何在Excel中获取范围的大小

使用VBA,是否可以按像素或单位获得给定范围的大小?(我不关心哪个单位,因为我只使用它与相同单位的其他测量相关).

谢谢.

size excel vba range excel-vba

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

在这个角落的情况下,C++ 11内存排序保证是什么?

我正在编写一些无锁代码,我想出了一个有趣的模式,但我不确定它是否会在轻松的内存排序下表现得如预期.

解释它的最简单方法是使用一个例子:

std::atomic<int> a, b, c;

auto a_local = a.load(std::memory_order_relaxed);
auto b_local = b.load(std::memory_order_relaxed);
if (a_local < b_local) {
    auto c_local = c.fetch_add(1, std::memory_order_relaxed);
}
Run Code Online (Sandbox Code Playgroud)

请注意,所有操作都使用std::memory_order_relaxed.

显然,在这上,负载为执行的线程a,并b在之前必须完成if情况进行评估.

类似地,读取 - 修改 - 写入(RMW)操作c必须在评估条件之后完成(因为它以条件为条件).

我想知道的是,这段代码保证的价值c_local至少高达最新的值a_localb_local?如果是这样,如果放宽内存排序,这怎么可能?控制依赖是否与RWM操作一起充当某种获取范围?(请注意,在任何地方都没有相应的版本.)

如果上述情况属实,我相信这个例子也应该有效(假设没有溢出) - 我是对的吗?

std::atomic<int> a(0), b(0);

// Thread 1
while (true) {
    auto a_local = a.fetch_add(1, std::memory_order_relaxed);
    if (a_local >= 0) {    // Always true at runtime
        b.fetch_add(1, std::memory_order_relaxed);
    }
} …
Run Code Online (Sandbox Code Playgroud)

multithreading atomic memory-model c++11

21
推荐指数
1
解决办法
1899
查看次数

为什么ThreadSanitizer使用这个无锁示例举报竞赛?

我已将其归结为一个简单的自包含示例.主线程将1000个项目排队,并且工作线程尝试同时出列.ThreadSanitizer抱怨在其中一个元素的读取和写入之间存在竞争,即使存在一个保护它们的获取释放内存屏障序列.

#include <atomic>
#include <thread>
#include <cassert>

struct FakeQueue
{
    int items[1000];
    std::atomic<int> m_enqueueIndex;
    int m_dequeueIndex;

    FakeQueue() : m_enqueueIndex(0), m_dequeueIndex(0) { }

    void enqueue(int x)
    {
        auto tail = m_enqueueIndex.load(std::memory_order_relaxed);
        items[tail] = x;              // <- element written
        m_enqueueIndex.store(tail + 1, std::memory_order_release);
    }

    bool try_dequeue(int& x)
    {
        auto tail = m_enqueueIndex.load(std::memory_order_acquire);
        assert(tail >= m_dequeueIndex);
        if (tail == m_dequeueIndex)
            return false;
        x = items[m_dequeueIndex];    // <- element read -- tsan says race!
        ++m_dequeueIndex;
        return true;
    }
};


FakeQueue q;

int main()
{ …
Run Code Online (Sandbox Code Playgroud)

race-condition memory-barriers c++11 thread-sanitizer

20
推荐指数
2
解决办法
3586
查看次数

Python相当于LINQ All函数?

什么是惯用的Python方法来测试集合中的所有元素是否满足条件?(.NET All()方法在C#中很好地填补了这个空白.)

有明显的循环方法:

all_match = True
for x in stuff:
    if not test(x):
        all_match = False
        break
Run Code Online (Sandbox Code Playgroud)

列表理解可以做到这一点,但似乎很浪费:

all_match = len([ False for x in stuff if not test(x) ]) > 0
Run Code Online (Sandbox Code Playgroud)

必须有更优雅的东西......我错过了什么?

python linq

17
推荐指数
1
解决办法
2138
查看次数

使用TypeBuilder为基类创建传递构造函数

说我有一个SpaceShip班级,如下:

public class SpaceShip {
    public SpaceShip() {  }
    public SpaceShip(IRocketFuelSource fuelSource) {  }
}
Run Code Online (Sandbox Code Playgroud)

我想用于TypeBuilder在运行时创建一个继承自SpaceShip的类型,并为SpaceShip中的每个类型定义一个构造函数.我不需要构造函数实际任何事情,除了将它们的参数传递给父("传递"构造函数).例如,如果用C#表示,生成的类型看起来像这样:

public class SpaceShipSubClass : SpaceShip {
    public SpaceShipSubClass() : base() {  }
    public SpaceShipSubClass(IRocketFuelSource fuelSource) : base(fuelSource) {  }
}
Run Code Online (Sandbox Code Playgroud)

为了使事情复杂化,我实际上并不知道生成类型将继承到哪个类直到运行时(因此我将不得不考虑任意数量的构造函数,可能使用默认参数).

这可能吗?如果我有一个大方向开始,我想我可以弄明白,只是我完全是新手TypeBuilder.

谢谢!

c# reflection typebuilder

16
推荐指数
1
解决办法
5014
查看次数

我应该在源文件顶部的标题注释中添加什么?

我有很多用各种语言编写的源代码文件,但没有一个在顶部有标准注释(有时甚至在同一个项目中).其中一些根本没有任何标题评论:-)

我一直在考虑创建一个标准模板,我可以在源文件的顶部使用,并且想知道我应该包含哪些字段.

我知道我想要包含我的名字和文件包含/做的简短描述.我还应该包括创建的日期吗?上次修改日期?上次修改文件的程序员?你发现哪些其他领域有用?

任何提示和评论欢迎.

谢谢,
卡梅隆

language-agnostic comments

13
推荐指数
2
解决办法
2993
查看次数

从代码中加载WPF中的图像

我必须在网上阅读大量的解决方案,但由于一些愚蠢的原因,我无法让他们工作.

我的项目的Resources文件夹中有一个.jpg图像,图像设置为Build Action:Resource(非嵌入式资源),永远不会复制到输出文件夹.我的图片添加到我的resources.resx文件中.

我试图像这样访问该文件:

lResult = new BitmapImage(new Uri(@"pack://application:,,,/Resources/ImageMissing.jpg", UriKind.Absolute));
Run Code Online (Sandbox Code Playgroud)

但这说不清楚那里没有图像.

这是如此基本我觉得真的很蠢,但我似乎无法掌握资源使用的简单概念.

谢谢.

.net c# wpf

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

Google App Engine中的Jinja2

我已经开始在Google App Engine上使用Jinja2作为我的模板引擎(在Python中).

我的问题是:字节码缓存会在生产中起作用吗?它在开发服务器上工作得非常好,但我在某处读到字节码缓存取决于marshal模块,App Engine不支持该模块.这个对不同问题的回答通过改变marshal使用pickle方法提供了一种可能的解决方案.有没人试过这个?

一般来说,在将Jinja2与App Engine一起使用时,还有其他什么需要考虑吗?

任何帮助将不胜感激!

谢谢.

python google-app-engine caching jinja2

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

包含BOM的UTF-8 HTML和CSS文件(以及如何使用Python删除BOM)

首先,一些背景:我正在使用Python开发Web应用程序.我的所有(文本)文件当前都以带有BOM的UTF-8存储.这包括我的所有HTML模板和CSS文件.这些资源作为二进制数据(BOM和所有)存储在我的数据库中.

当我从数据库中检索模板时,我使用它来解码它们template.decode('utf-8').当HTML到达浏览器时,BOM存在于HTTP响应主体的开头.这会在Chrome中产生一个非常有趣的错误:

Extra <html> encountered. Migrating attributes back to the original <html> element and ignoring the tag.

Chrome似乎会<html>在看到BOM时自动生成代码并将其误认为内容,从而使真正的<html>代码出错.

那么,使用Python,从我的UTF-8编码模板中删除BOM的最佳方法是什么(如果存在 - 我将来不能保证这一点)?

对于其他基于文本的文件,如CSS,主流浏览器是否会正确解释(或忽略)BOM?它们作为普通二进制数据发送而没有.decode('utf-8').

注意:我使用的是Python 2.5.

谢谢!

python byte-order-mark file utf-8

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

Google App Engine模型的自定义键(Python)

首先,我对Google App Engine比较陌生,所以我可能会做些傻事.

说我有一个模型Foo:

class Foo(db.Model):
   name = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

我想name用作每个Foo对象的唯一键.这是怎么做到的?

当我想获得一个特定的Foo对象时,我目前在数据存储区中查询Foo具有目标唯一名称的所有对象,但查询速度很慢(另外,确保nameFoo创建每个新对象时它是唯一的).

必须有一个更好的方法来做到这一点!

谢谢.

python google-app-engine primary-key google-cloud-datastore

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