Question: why the multi-thread codes return wrong result

This piece of code returns a vector 'Sinrdensity' with identity entries. what's wrong with it?

restart;
sinrvalue := [seq(10^((1/10)*i), i = -15 .. 25, .5)];

Sinrdensity := Matrix(1, nops(sinrvalue), 0);

task := proc (sinrdensity, initialpoint, endpoint)

local bft, Theta, bound, value;

for value from initialpoint to endpoint do

bft := unapply(1/(1+I*t), t);

for Theta from 0 to 10^10 while is(0.1e-1 <= evalf(abs(bft(2^Theta))/abs(bft(0)))) do  end do;

bound := 2^Theta;

sinrdensity[1, value] := int(bft(t)*exp(-I*t), t = -bound .. bound, numeric) end do end proc;

Threads[Task][Start](null, Task = [task, Sinrdensity, 1, floor((1/2)*nops(sinrvalue))], Task = [task, Sinrdensity, floor((1/2)*nops(sinrvalue))+1, nops(sinrvalue)]);

Please Wait...