问题列表 - 第26922页

iPhone相当于Application.DoEvents();

iPHone:我们使用MonoTouch,但Obj-C答案还可以.

我的单例域对象需要一段时间来获取所有数据,因此它在内部运行部分线程中的提取.

我需要通知UI域已完成.目前我这样做.有没有更好的办法?在WinForms中,我将调用Application.DoEvents()而不是Thread Sleep.

PlanDomain domain = PlanDomain.Instance ();
while (domain.IsLoadingData)
{
    Thread.Sleep (100);  //this is the main UI thread
}

TableView.Hidden = false;
TableView.Source = new TableSource (this);
TableView.ReloadData ();
Run Code Online (Sandbox Code Playgroud)

iphone multithreading xamarin.ios

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

如何在Android中为TextView添加换行符?

当我定义一个TextViewin时xml,如何添加一个新行?\n好像不行.

<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: \n-Line2\n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />
Run Code Online (Sandbox Code Playgroud)

android newline textview

241
推荐指数
16
解决办法
33万
查看次数

Context.startService(intent)或startService(intent)

是什么区别Context.startService(intent),并startService(intent)和它无论使用哪一个?

service android

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

asp.net - 会话 - 多个浏览器标签 - 不同的会话?

我想维护每个浏览器选项卡的会话状态.

这在ASP.NET中是否容易(甚至可能)?

示例:用户在firefox中按Ctrl-T 5次,并在每个选项卡中访问该站点.我希望每个选项卡在服务器上都有自己的会话状态

asp.net iis session

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

如何可靠地确定在设计时使用var声明的变量的类型?

我正在为emacs中的C#完成(intellisense)工具.

这个想法是,如果用户键入片段,然后通过特定的击键组合要求完成,则完成工具将使用.NET反射来确定可能的完成.

这样做需要知道正在完成的事物的类型.如果它是一个字符串,那么有一组已知的可能方法和属性; 如果它是一个Int32,它有一个单独的集,依此类推.

使用语义,emacs中提供的代码词法分析器/解析器包,我可以找到变量声明及其类型.鉴于此,可以直接使用反射来获取类型上的方法和属性,然后向用户显示选项列表.(好吧, emacs中做的不是那么简单,但是使用 emacs 中运行PowerShell进程的能力,它变得容易得多.我编写了一个自定义.NET程序集来进行反射,将其加载到powershell中,然后在内部运行elisp emacs可以通过comint向powershell发送命令并读取响应.因此,emacs可以快速获得反射结果.)

当代码var在声明正在完成的事物中使用时,问题就会到来.这意味着未明确指定类型,并且完成将不起作用.

当使用var关键字声明变量时,如何可靠地确定实际使用的类型?为了清楚起见,我不需要在运行时确定它.我想在"设计时"确定它.

到目前为止,我有这些想法:

  1. 编译并调用:
    • 提取声明语句,例如`var foo ="一个字符串值";`
    • 连接语句`foo.GetType();`
    • 将生成的C#片段动态编译为新的程序集
    • 将程序集加载到新的AppDomain中,运行framgment并获取返回类型.
    • 卸载并丢弃组件

    我知道怎么做这一切.但对于编辑器中的每个完成请求,它听起来非常重量级.

    我想我每次都不需要新的AppDomain.我可以为单个AppDomain重复使用多个临时程序集,并在多个完成请求中分摊设置和拆除它的成本.这更像是对基本理念的调整.

  2. 编译和检查IL

    只需将声明编译到模块中,然后检查IL,以确定编译器推断出的实际类型.这怎么可能?我会用什么来检查IL?

还有更好的想法吗?评论?建议?


编辑 - 进一步考虑这一点,编译和调用是不可接受的,因为调用可能有副作用.因此必须排除第一种选择.

此外,我认为我不能假设.NET 4.0的存在.


更新 - 上面没有提到的正确答案,但Eric Lippert温和地指出,是实现完全保真的类型推理系统.它是在设计时可靠地确定var类型的唯一方法.但是,这也不容易.因为我苦于没有幻想,我要试图建立这样的事情,我把选项2的快捷方式-提取相关声明代码,并编译它,然后检查所产生的IL.

这实际上适用于完成方案的公平子集.

例如,假设在下面的代码片段中,?是用户要求完成的位置.这有效:

var x = "hello there"; 
x.?
Run Code Online (Sandbox Code Playgroud)

完成意识到x是一个String,并提供适当的选项.它通过生成并编译以下源代码来实现:

namespace N1 {
  static class dmriiann5he { // randomly-generated class name
    static void M1 () {
       var x = "hello there"; 
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

......然后用简单的反射检查IL.

这也有效:

var x …
Run Code Online (Sandbox Code Playgroud)

c# reflection type-inference appdomain

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

从无上下文语法生成n个语句

所以不要重新发明轮子,我想知道从无上下文语言(如yacc等产生的语言)生成随机语句已经做了些什么.这些语法主要用于解析,但也许有人为测试解析器做了一些生成?谢谢

random context-free-grammar

6
推荐指数
1
解决办法
1403
查看次数

如何循环使用boost :: mpl :: list?

就我而言,

#include <boost/mpl/list.hpp>
#include <algorithm>
namespace mpl = boost::mpl;

class RunAround {};
class HopUpAndDown {};
class Sleep {};

template<typename Instructions> int doThis();
template<> int doThis<RunAround>()    { /* run run run.. */ return 3; }
template<> int doThis<HopUpAndDown>() { /* hop hop hop.. */ return 2; }
template<> int doThis<Sleep>()        { /* zzz.. */ return -2; }


int main()
{
    typedef mpl::list<RunAround, HopUpAndDown, Sleep> acts;

//  std::for_each(mpl::begin<acts>::type, mpl::end<acts>::type, doThis<????>);

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

我该如何完成?(我不知道我是否应该使用std :: for_each,只是基于另一个答案的猜测)

c++ templates boost metaprogramming boost-mpl

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

可以用这种方式在javascript中初始化一个对象吗?

我想在javascript中初始化一个对象直接调用属于它的方法:

  var obj = (function(){
      return{
          init: function(){
              console.log("initialized!");
              return this;
          },
          uninit: function(x){
              console.log("uninitialized!");
          }
      };
  }).init();

  //later
  obj.uninit();
  obj.init();
Run Code Online (Sandbox Code Playgroud)

这个具体的例子不起作用,有类似的东西吗?

javascript initialization object

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

在java中的do while循环中只执行一次指令

在java中,我们如何在do while循环中只执行一次指令

do{
    int param;

    //execute this onty one time (depends of param)
    //other instructions instructions

}while(condition)
Run Code Online (Sandbox Code Playgroud)

谢谢

java windows

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

不在对象上下文中时使用$ this

我正在创建一个显示博客的功能.所以我做了一个show blog功能,但它不断给出"在不在对象上下文中时使用$ this"错误

Class Blog{

    public function getLatestBlogsBig($cat = null){
        $sqlString = "SELECT blog_id FROM jab_blog";
        if($cat != null)
            $sqlString .= " WHERE blog_cat = " . $cat;

        $sqlString .= " ORDER BY blog_id DESC LIMIT 5";
        $blog = mysql_query($sqlString);

        while($id = mysql_result($blog,"blog_id")){
            $this->showBlog($id); //Error is on this line
        }

    }

    function showBlog($id,$small = false){
        $sqlString = "SELECT blog_id FROM jab_blog WHERE blog_id=" . $id . ";";
        $blog = mysql_query($sqlString);

        if($small = true){
            echo "<ul>";
            while($blogItem = mysql_fetch_array($blog)){
                echo '<a …
Run Code Online (Sandbox Code Playgroud)

php oop class

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