我一直在寻找并发现执行后台工作和更新GUI的好方法是使用后台工作程序.但是,执行这个(愚蠢的)小任务(从1到10000计数)它不会更新标签内容,而是打印到调试!(当然这只是另一个项目的尖峰解决方案......)
这是代码:
public partial class MainWindow : Window
{
BackgroundWorker bw = new BackgroundWorker();
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.WorkerReportsProgress = true;
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
bw.RunWorkerAsync();
}
void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("DONE");
}
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label1.Content = "going here: "+e.ProgressPercentage;
Debug.WriteLine(e.ProgressPercentage);
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
for (int i=0; i < 10000; i++)
{
bw.ReportProgress((i*100)/10000);
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Ruby on Rails 3,我正在尝试使用中间件来设置@variable_name稍后在控制器中可访问的变量.
例如,我的中间件是
class Auth
def initialize(app)
@app = app
end
def call(env)
@account ||= Account.find(1)
@app.call(env)
end
end
Run Code Online (Sandbox Code Playgroud)
上面的代码正确设置了@account变量,但是在我的应用程序中没有(在控制器,模型,视图......中).那么,我该怎么做呢?
我看到这个答案是一种做我需要的方法,但我希望@account变量"可以直接访问".也就是说,不使用那种方式,但使其可用,例如在我的视图中,像这样:
<%= debug @account %>
Run Code Online (Sandbox Code Playgroud) 我搜索了这个主题,我遇到了三种不同的方式来配置浏览器功能:browscap.ini,web.config中的browserCaps元素和App_Browsers中的.browser文件.我认为.browser文件是最新的方式,但我似乎没有找到最新的文件.但是我从http://browsers.garykeith.com/downloads.asp找到了相当新鲜的browscap.ini .
我的首要任务是从访问者统计信息中排除常见的抓取工具.第二个优先级是检测具有正确版本的浏览器和操作系统(例如Opera 11/Win7).
我可以使用任何库吗?browscap.ini仍然是一种有效的方式,是否可以在不访问系统文件的情况下使用它?我在哪里可以找到最新的.browser文件?
有没有办法将C代码转换为JavaScript,从JavaScript转换为C?我发现V8 juice哪些可以JavaScript-side从C++ 生成类,但它只有一种方式(C++到JavaScript).
我不是在找软件.
(function(){
---this code at here ----
})();
Run Code Online (Sandbox Code Playgroud)
什么(function(){})();意思?请向我解释一下.
请帮助解决这个问题并解释逻辑.我不知道&运营商是如何在这里工作的.
void main() {
int a = -1;
static int count;
while (a) {
count++;
a &= a - 1;
}
printf("%d", count);
}
Run Code Online (Sandbox Code Playgroud) 要将许多数据写入文件,我有两种方法:
直接写入ofstream流
ofstream file("c:\\test.txt");
for (int i = 0; i < 10000; ++i)
{
file << data[i];
}
Run Code Online (Sandbox Code Playgroud)首先写入istringstream,然后立即写入ofstream
ostringstream strstream;
for (int i = 0; i < 10000; ++i)
{
strstream << data[i];
}
ofstream file("c:\\test.txt");
file << strstream.str();
Run Code Online (Sandbox Code Playgroud)毫不奇怪,第二种方法更快,事实上,它比我的HP7800机器上的第一种方法快4倍.
但为什么?我知道ofstream正在使用filebuf,而ostringstream正在使用stringbuf - 作为缓冲区,它们都应该驻留在内存中,因此应该没有区别.
引擎盖下有什么区别?
这不是关于它们如何工作和宣布的问题,我认为这对我来说非常清楚.问题是为什么要实现这个?我想实际的原因是为了简化其他代码的关联并声明它们的基类型变量,从许多其他子类处理对象及其特定方法?
这可以通过模板化和类型检查完成,就像我在Objective C中做的那样吗?如果是这样,什么更有效?我发现将对象声明为一个类并将其实例化为另一个类是令人困惑的,即使它是它的子类.
SOrry愚蠢的问题,但我还没有用C++完成任何真正的项目,因为我是活跃的Objective C开发人员(它是一个小得多的语言,因此很大程度上依赖于SDK的功能,如OSX,iOS)我需要有任何并行的清晰视图表兄弟的方式.
c ×2
c++ ×2
java ×2
javascript ×2
asp.net ×1
asp.net-4.0 ×1
bitwise-and ×1
filestream ×1
iostream ×1
javadoc ×1
middleware ×1
objective-c ×1
polymorphism ×1
ruby ×1
variables ×1
wpf ×1