小编Mic*_*ael的帖子

将PivotItem转换为Usercontrol以提高WP7中的加载性能

我的MainPage.xaml是一个包含3个PivotItems的数据透视表页面.目前它正在为MainPage构造函数上的每个PivotItem加载所有必需的东西.这很糟糕,因为它加载了许多不必要的东西.

在这里这里阅读表明我只加载第一个PivotItem,加载后,加载其余的项目.特别是:

通过按需加载Pivot控件内容而不是在启动时加载所有内容来提高数据透视表应用程序的性能.一种解决方案是从每个PivotItem控件获取内容并转换为UserControls.然后,您可以在根枢轴控件上订阅LoadingPivotItem事件.接下来,在事件处理程序中,实例化适当的UserControl并将其设置为PivotItem内容.

如果我遵循这个建议:

private void OnLoadingPivotItem(object sender, PivotItemEventArgs e)
{
if (e.Item.Content != null)
{
    // Content loaded already
    return;
}

Pivot pivot = (Pivot)sender;

if (e.Item == pivot.Items[0])
{
    e.Item.Content = new Page1Control();
}
else if (e.Item == pivot.Items[1])
{
    e.Item.Content = new Page2Control();
}
else if (e.Item == pivot.Items[2])
{
    e.Item.Content = new Page3Control();
}
}
Run Code Online (Sandbox Code Playgroud)

我应该使用create class PageXControl?它应该从主页类继承吗?

如何从每个PivotItem控件中获取内容并转换为UserControls?

谢谢

c# windows-phone-7

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

javascript中的以下逻辑if或语句有什么问题?

我是javascript的新手,它必须非常基础:

if (controllerName === ('about' || 'contact' || 'lessons')) {
        res.render(controllerName + '.ejs', locals);
    }
Run Code Online (Sandbox Code Playgroud)

只有当controllerName=='about'我进去时,其余的情况我都没有.

在这种情况下如何操作or===操作?

javascript

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

为什么不能将mmap与socket fd一起用作参数?

我知道这是不可能的,我正在努力了解OS背后的真正原因

sockets mmap

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

在C窗口中将参数传递给线程的最佳方法是什么?

嗨,我有一个使用几个变量的线程.变量在运行时从argv []确定.

我看到他的选择:

  1. 使变量全局化,以便线程可以使用它们(不需要保护它们,因为线程不会更改它们).我不愿意使用它,因为全局变量不太好

  2. 创建一个结构来保存变量并将其传递给线程.varibales并没有真正相关,因此它将是一个"强制"结构,除了线程的参数之外没有任何意义.也比选项1更复杂

还有其他选择吗?哪一个被认为更好?

谢谢 !

c c++ windows multithreading arguments

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

全局结构和c中的多个线程

谁能解释一下这段代码中的编译错误:

#include "common.h"

typedef struct nodeData {
    int procid;
    unsigned short localport;
    DWORD LIFETIME;
    DWORD HELLOTIMEOUT;
    DWORD MAXTIME;
} nodeData;

int listenerThread() {
    if(!bindSocket(listenSocket,nodeData.localport)){
        closesocket(listenSocket);
        WSACleanup();
        exit(-1);
}
    // more code goes here  
}

int main(int argc,char* argv[]) {
    nodeData.localport = 5001;
    // more code goes here  

}
Run Code Online (Sandbox Code Playgroud)

我希望nodeData结构可用于我将创建的每个listenerThread.线程将一直操纵此nodeData结构(将使用互斥锁保护它).

所以我希望这个结构在全球范围内可用.我在哪里初始化它?我猜是主要的.

行中的编译错误

nodeData.localport = 5001;
Run Code Online (Sandbox Code Playgroud)

错误:非静态成员引用必须与特定对象相关

我在这里失踪了什么?

谢谢 !

c windows struct global

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

在C窗口等待时间没有忙等待

我有一个线程,其工作是向UDP对等体发送消息.线程发送消息iff以下适用之一:

1)自上次发送消息(如超时)以来已经过了一定时间.

2)其他线程引发了共享结构中的更新布尔标志.

我希望能够等待这些条件发生,所以我知道何时发送消息.

我能做到的最简单的方法是制作一个循环,重复直到其中一个条件满足.我担心它正在忙着等待,并且会消耗大量的CPU时间.我也不想睡觉().

我不介意使用C++解决方案,只要它易于理解和实现,因为我对C++不是很熟悉.

谢谢 !

c c++ windows

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

'fabs':使用模板时对重载函数的模糊调用

我有以下功能:

T* tContainer_t<T, R>::Remove( T item )
{    
    typename R::const_iterator it = std::find_if(Container.begin(), Container.end(),  [item](const T* v) { return std::fabs(*v - item) < DBL_EPSILON; });
    if (it != Container.end())
    {
        ...
    }
    else
        return NULL;
}
Run Code Online (Sandbox Code Playgroud)

T可以int,double,float,等....

编译器给了我 'fabs' : ambiguous call to overloaded function when using templates

问题是什么?如何解决?

谢谢.

c++

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